悦儿姐四年级时看过一本书,书名叫《从一到无穷大》,里面记载了一个非常好玩的故事,现在居然被写成了编程题。哈哈,我感觉很有趣,就发出来了。原故事是这样的:
相传,大宰相西萨.本.达依尔 发明了国际象棋并将其呈送给了印度舍罕王,因此舍罕王想要奖赏他。这位聪明的宰相的要求似乎并不过分,“陛下,”他跪拜在国王面前说,“请将第一个麦粒放在第一格,将两个麦粒放在第二格,将四个麦粒放在第三格,将八个麦粒放在第四格......按照这个方法,使得每一格的麦粒的数量都是前一格的两倍。陛下,请上次我能填满整个棋盘上64格的所有的麦粒吧!” “哦,我忠实的仆人,你的要求倒是不高,”国王感叹道,心里窃喜他给这项神奇游戏的发明者的慷慨许诺不会消耗他多少财宝,“你必将如愿以偿。” 当计数开始,一粒一粒麦子被放了上去,还没到20格一袋麦子就用完了,往下每数一格,所需要的麦子迅速增长,哪怕倾尽印度所有的麦子,国王也无法实现他的承诺。因为那可是18446744073709551615粒麦子啊!!!
好,还是那句话,非常简单,直接走起。
s=1 # 每格需要的麦子
x=1 # 总和
for i in range(63): # 遍历,那一遍在初始值时已经设置
s=s*2 # 每次增大二倍
x+=s # 每次都累加
print(x) # 打印总和
到此结束,不见不散,欢迎借鉴