Python 无法确定这是否是正确的代码?

Python 无法确定这是否是正确的代码?,python,Python,您好,我必须对下面的问题进行编程(我的代码在下面),但是一旦您阅读了问题,您就会明白我需要代码来添加前面的所有数字。如果有人能看到我的代码,并告诉我它是否已经在这样做,如果没有,我可以如何去做,我尝试了一些不起作用的东西,因为答案一直是0 问题是: 正如你所知,国际象棋的发明者是个了不起的人物 聪明的家伙。随着故事的发展,发明家将游戏介绍给了 国王和国王都很高兴。国王问国王说什么 发明家想要作为报酬。他要了一粒麦片当早餐 第一个方块,然后让接下来的63个方块中的每一个加倍 前广场。正如传说中的那

您好,我必须对下面的问题进行编程(我的代码在下面),但是一旦您阅读了问题,您就会明白我需要代码来添加前面的所有数字。如果有人能看到我的代码,并告诉我它是否已经在这样做,如果没有,我可以如何去做,我尝试了一些不起作用的东西,因为答案一直是0

问题是:

正如你所知,国际象棋的发明者是个了不起的人物 聪明的家伙。随着故事的发展,发明家将游戏介绍给了 国王和国王都很高兴。国王问国王说什么 发明家想要作为报酬。他要了一粒麦片当早餐 第一个方块,然后让接下来的63个方块中的每一个加倍 前广场。正如传说中的那样,国王同意了,但并不过分 对最后的付款感到满意。创建一个程序来计算 国王必须支付的粮食。用英镑表达你的答案;假定 每磅有7000粒谷物

我的代码:

count = 0 
number1 = 1 
num = 2

while count < 63:
    num = num * 2
    count += 1

print "He payed ", num, " Pounds."
count=0
数字1=1
num=2
当计数小于63时:
num=num*2
计数+=1
打印“他付了钱”,数字,“英镑。”
因此,如果您改为计算:

2 ^ 64 - 1
你会得到你要的谷物的数量。(请注意,我是用常用的数学表示法给出这个答案的,而不是Python表示法。
2^64
在Python中做了一些不同的事情。请使用
**
代替。)

然后将这个数字除以7000,得到问题最终想要的磅数


当然,如果整个练习的重点是教循环,那么代数等式与练习的目的背道而驰——但这些等式是编程的重要组成部分。

有关答案的“捷径”,请参见sarnold的答案。但是,如果要通过循环执行此操作,请对代码进行以下更改:

  • num应该以1开头,因为第一个正方形只支付了一个谷物

  • while循环应该读while count这个单词问题有很多小步骤;这可能有助于描绘一幅图画:

    从第一个正方形上的一个“颗粒”开始

    +----+----+--
    |    |    |  
    |  1 |    |  
    +----+----+--
    |    |    |  
    |    |    |  
    +----+----+--
    |    |    |  
    
    并将每个正方形加倍:

    +----+----+--
    |    |    |  
    |  1 |  2 |  
    +----+----+--
    |    |    |  
    |    |    |  
    +----+----+--
    |    |    |  
    
    到目前为止还不错。然而,我们感兴趣的是总共有多少粮食,因此国王不得不支付

    1 + 2 = 3
    
    所有方块的成本,而不仅仅是最后一个。继续:

    +----+----+--
    |    |    |  
    |  1 |  2 |  
    +----+----+--
    |    |    |  
    |  4 |  8 |  
    +----+----+--
    |    |    |  
    
    1 + 2 + 4 + 8 = 15 grains
    
    以此类推,我们将以

    1 + 2 + ( 64 times ) grains
    
    不管结果是什么数字

    不过,问题还有最后一部分;你要用“磅”而不是“谷物”来表达你的答案,所以
    务必将结果转换为正确的单位

    欢迎使用堆栈溢出!请在家庭作业问题上加上标签,这为我们提供了一个指标,表明我们应该更好地解释答案,并缩短修改代码的时间。:)事实上,你根本不需要求和,因为平方和1..n等于2^n-1格令。事实上,这里有一个完整的解决方案:
    print(pow(2,64)-1)/7000
    。如果你问我的话,这是一个蹩脚的编程作业。如果你尝试了一些不起作用的东西,你也应该证明这一点。也许这几乎是对的,ew会注意到?@Juhana从0到n-1的二次幂和是2^(n)-1:)@Ord!正方形n上有2^(n-1)个晶粒:)应该是2^64-1。。。第一个正方形是2^0,所以第64个正方形是2^63。@Ord,谢谢。嘘。在我提到程序片段中的过度计算之后。。。
    +----+----+--
    |    |    |  
    |  1 |  2 |  
    +----+----+--
    |    |    |  
    |  4 |  8 |  
    +----+----+--
    |    |    |  
    
    1 + 2 + 4 + 8 = 15 grains
    
    1 + 2 + ( 64 times ) grains