相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请编程求出国王总共需要将多少麦子赏赐给他的宰相。
这种案列种,我们可以运用列表推导式,然后sum求和即可,期间会使用幂算术运算符(**)
方法如下:
k = 2 f = sum([k**i for i in range(64)]) print('国王需要赏赐的麦子数量:',f)
运行结果为:
其思维逻辑具体可表达为:
(2**0+2**1+2**3+.....+2**63)=18446744073709551615