印度有一个饶有趣味的故事。传说舍罕王打算重赏象棋的发明人、宰相西萨·班·达依尔。国王问他有何要求,这位聪明的大臣胃口看来并不大,他跪在国王面前说:“陛下,请您在这张棋盘的第一个小格内,赏给我一粒麦子,在第二个小格内给两粒,第三格内给四粒,照这样下去,每一个小格内都比前一小格加一倍。陛下啊,把这样摆满棋盘上所有64格的麦粒,都赏给您的仆人吧。”国王一听,认为这区区赏金,微不足道。于是,满口答应道:“爱卿,你所求的并不多啊,你当然会如愿以偿。”说着,他令人把一袋麦子拿到宝座前。
结果怎样呢?按照第一格内放一粒,第二格内放二粒,第三格内放四粒,……还没有放到二十格,一袋麦子就已经完了。一袋又一袋的麦子被扛到国王面前来.但是,麦粒数一格接一格地增长得那样迅速,很快就可以看出,如果要计算到第六十四格,即使拿来全印度的粮食,国王也兑现不了他对西萨·班许下的诺言了。
第二种方法:采用递归
第三种方法:利用python的列表生成式
简单一行代码就可以轻松解决之,由此可见,python确实是一门牛x滴的编程语言
领取专属 10元无门槛券
私享最新 技术干货