Python:阿基米德棋盘放米问题

国王与数学家阿基米德下棋,在棋盘上放米,国王输了,国王问阿基米德要什么奖赏?
阿基米德对国王说:
我只要在棋盘上第一格放一粒米,第二格放二粒,第三格放四粒,第四格放十六粒………
按这个倍增的比例放满整个棋盘的64个格子就行。求一共多少粒米。

如果要求使用map,reduce

from functools import reduce
reduce(lambda a,b:a+b,map(lambda i:2**i,range(0,64)))

得到输出

18446744073709551615

就结束啦!

当然也有更简单的做法,直接用sum函数就可以

print(sum([2**n for n in range(64)]))

刚接触python的小萌新,各位大佬多多指教。

内师大

计科汉二

你可能感兴趣的:(python)