返回首页 返回题库

棋盘上的奖赏

C++ 入门 GESP一级真题 #累加

题目描述

题面描述

相传古印度舍罕王为了奖赏宰相西萨发明国际象棋,西萨提的任何要求舍罕王都愿意满足。西萨只求在棋盘第1格放1粒麦子,第2格放2粒麦子,之后每一格都放前一格两倍的麦子,以此类推直到第64格。国王觉得这奖赏微不足道,立刻命人取粮。

然而麦子的数量飞速增长:到第20格已需上百万粒,到第40格就耗尽了全国库存,而后面仍有24格。最终国王发现,即便倾尽天下粮食也填不满棋盘。

聪明的你知道前n格总共需要多少粒麦子吗?

输入格式

一行,一个整数n。

输出格式

一行,一个整数,表示前n格总共需要的麦子粒数。

样例1

输入:

3

输出:

7

样例2

输入:

10

输出:

1023

样例解释

样例1:前3格的麦子数是1+2+4=7粒。

样例2:前10格的麦子数是1+2+4+…+512=1023粒。


数据范围

对于40%的测试点,保证1≤n≤10。

对于所有测试点,保证1≤n≤30。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察循环结构的使用、累加算法、数据类型的选择(当n较大时,结果会超过int的范围,需使用long long类型)。
⚙ 开始做这道题 0 人做过 · 1 收藏 · 16 浏览

讨论(0)