4311: 棋盘麦粒
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:58
解决:29
题目描述
古时候,印度有个国王很爱下国际象棋,从来没有人赢过他,时间久了,国王觉得很无聊,就下令,谁能赢他,就会满足这个人的一个愿望。有一天,一个聪明的大臣提出要和国王下棋。骄傲的国王根本没把这个大臣放在眼里,结果输了。
国王决定信守诺言,他对大臣说:“我要重赏你,你想要什么金银珠宝,我都可以给你。”大臣回答道:“我只想要一些麦粒。陛下,请用这个棋盘的格子来计数,数到第1个格子时给我1颗麦粒,第2个格子给我2颗麦粒,第3个格子给我4颗麦粒,第4个格子给我8颗麦粒,一共64个格子。
国王听了大臣的要求,哈哈大笑。立刻吩咐管粮食的大臣说:”你去拿几袋麦子赏给他吧。“管粮大臣在计算之后大惊失色,忙想国王报告道:”陛下,就算把全国的粮食都给他,也远远不够啊!“。
请你使用for循环和while循环的方法算算总共的麦粒数。
输入
无
样例输入 复制
样例输出 复制
18446744073709551615
提示
#方法一:for循环 ans=1 #麦粒总数 n=1 #当前格子麦粒数 for i in range(2,65): n*=2 ans+=n print(ans)
#方法二:while循环 ans=1 #麦粒总数 n=1 #当前格子麦粒数 i=2 #当前格子 while i<=64: n*=2 ans+=n i+=1 print(ans)