美文网首页日更成长营自学编程Python
自学Python:国王给象棋发明者的奖励

自学Python:国王给象棋发明者的奖励

作者: 小强聊成长 | 来源:发表于2021-11-29 10:18 被阅读0次

相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请编程求出国王总共需要将多少麦子赏赐给他的宰相。

这就是个经典的复利的故事,算法很简单,棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64格。现在用一个复利公式很容易就计算出来了。那用python代码试着计算一下,一共是多少?

下面直接上代码:

########################

if __name__=="__main__":

    # 使用循环求累加和

    i = 1

    zongshu = 0.0

    while i <= 64:

        zongshu = zongshu + 2**(i-1)

        print("第" , i ,'格需要给的总数', "=" , int(zongshu))

        i += 1

    print("国王总共需要赏赐给宰相的麦子数为:\n%f\n" %zongshu)

########################

执行结果如下:

第 1 格需要给的总数 = 1

第 2 格需要给的总数 = 3

第 3 格需要给的总数 = 7

第 4 格需要给的总数 = 15

第 5 格需要给的总数 = 31

第 6 格需要给的总数 = 63

第 7 格需要给的总数 = 127

第 8 格需要给的总数 = 255

第 9 格需要给的总数 = 511

第 10 格需要给的总数 = 1023

第 11 格需要给的总数 = 2047

第 12 格需要给的总数 = 4095

第 13 格需要给的总数 = 8191

第 14 格需要给的总数 = 16383

第 15 格需要给的总数 = 32767

第 16 格需要给的总数 = 65535

第 17 格需要给的总数 = 131071

第 18 格需要给的总数 = 262143

第 19 格需要给的总数 = 524287

第 20 格需要给的总数 = 1048575

第 21 格需要给的总数 = 2097151

第 22 格需要给的总数 = 4194303

第 23 格需要给的总数 = 8388607

第 24 格需要给的总数 = 16777215

第 25 格需要给的总数 = 33554431

第 26 格需要给的总数 = 67108863

第 27 格需要给的总数 = 134217727

第 28 格需要给的总数 = 268435455

第 29 格需要给的总数 = 536870911

第 30 格需要给的总数 = 1073741823

第 31 格需要给的总数 = 2147483647

第 32 格需要给的总数 = 4294967295

第 33 格需要给的总数 = 8589934591

第 34 格需要给的总数 = 17179869183

第 35 格需要给的总数 = 34359738367

第 36 格需要给的总数 = 68719476735

第 37 格需要给的总数 = 137438953471

第 38 格需要给的总数 = 274877906943

第 39 格需要给的总数 = 549755813887

第 40 格需要给的总数 = 1099511627775

第 41 格需要给的总数 = 2199023255551

第 42 格需要给的总数 = 4398046511103

第 43 格需要给的总数 = 8796093022207

第 44 格需要给的总数 = 17592186044415

第 45 格需要给的总数 = 35184372088831

第 46 格需要给的总数 = 70368744177663

第 47 格需要给的总数 = 140737488355327

第 48 格需要给的总数 = 281474976710655

第 49 格需要给的总数 = 562949953421311

第 50 格需要给的总数 = 1125899906842623

第 51 格需要给的总数 = 2251799813685247

第 52 格需要给的总数 = 4503599627370495

第 53 格需要给的总数 = 9007199254740991

第 54 格需要给的总数 = 18014398509481984

第 55 格需要给的总数 = 36028797018963968

第 56 格需要给的总数 = 72057594037927936

第 57 格需要给的总数 = 144115188075855872

第 58 格需要给的总数 = 288230376151711744

第 59 格需要给的总数 = 576460752303423488

第 60 格需要给的总数 = 1152921504606846976

第 61 格需要给的总数 = 2305843009213693952

第 62 格需要给的总数 = 4611686018427387904

第 63 格需要给的总数 = 9223372036854775808

第 64 格需要给的总数 = 18446744073709551616

国王总共需要赏赐给宰相的麦子数为:

18446744073709551616.000000

最后的总数非常恐怖,即使把国家所有的麦子拿过来,都还不够。

________________END______________

相关文章

  • 自学Python:国王给象棋发明者的奖励

    相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8...

  • 财务自由的秘诀-复利

    从前有一个国王非常喜欢下象棋。一天,他下完棋后突发奇想,想要奖励象棋的发明者。他把发明象棋的人招到皇宫说:你发明的...

  • 财务自由的秘诀-复利

    从前有一个国王非常喜欢下象棋。一天,他下完棋后突发奇想,想要奖励象棋的发明者。他把发明象棋的人招到皇宫说:你发明的...

  • 你不知道的倍增理论

    文/蚂蚁救赎 首先给大家讲一个故事:古印度国王奖赏国际 象棋发明者,国王问他想要什么打赏。 发明者说:“在象棋盘上...

  • 【Tupoer践行录】『3/50』|复利

    《通往财富自由之路》第三篇笔记。持续50天,见证更好的自己! 最早知道“复利”这个概念时,是国王奖励象棋发明者那个...

  • 人生最重要的概念:复利

    从前,有一个国王,非常喜欢下棋。 一天,国王突发奇想,要奖励棋的发明者。国王对发明者说:你说吧,你要什么我都可以满...

  • 思维导图 | 运用复利思维,快速达到人生高度!

    今天继续阅读哈叔的《破局》这本书。 这一章开头,哈叔给我们讲了一个很经典的故事:一个国王奖励国际象棋发明者,问他想...

  • 复利都不懂,谈什麽致富?

    剖析复利之前,先来看一个大家都知道的故事: 从前,有一个国王,非常喜欢下棋。 一天,国王突发奇想,要奖励棋的发明者...

  • 复利都不懂,还谈什么财务自由?(深度剖析复利)

    剖析复利之前,先来看一个大家都知道的故事: 从前,有一个国王,非常喜欢下棋。 一天,国王突发奇想,要奖励棋的发明者...

  • 复利思维让财富增值,你也可以!

    复利 关于复利,大家听得最多的是一个印度国王奖励象棋发明人的故事! 国王问他有何要求?他说道:“陛下,请在我的64...

网友评论

    本文标题:自学Python:国王给象棋发明者的奖励

    本文链接:https://www.haomeiwen.com/subject/qzeatrtx.html