Python趣味案例之舍罕王賞麥
一、案例描述
據說印度的舍罕王打算重賞一個宰相,問他有何要求這位宰相說:“陛下,請您在這張棋盤的第一個格內賞給我一粒麥子,在第二個格內賞給我兩粒麥子在第三個格內賞給我四粒麥子,照這樣每一格內都比前一格多一倍,把這棋盤的64個格都放滿就行啦”。舍罕王聽後,認爲這區區賞金微不足道,於是滿口答應道:“愛卿,你所要求的並不多啊,你當然會如願以償請問:共需要賞賜給這位宰相多少粒麥子?
二、思路
使用循環來計算每格麥子數
三、代碼
1、使用循環來解決
def shehanwang(n): t = 1 # 初始化當前格子麥子數 s = 1 # 初始化當前麥子數之和 for i in range(1,n): t *= 2 # 每一格麥子數都是上一格的兩倍 s += t # 當前麥子數總和 print(s) shehanwang(64) # 18446744073709551615
2、使用列表生成式
print(sum([ 2 ** i for i in range(64)])) # 18446744073709551615