Python趣味案例之舍罕王賞麥

                                            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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章