传说古代印度有个喜欢下棋的国王叫舍罕,而宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩得爱不惜手,决定奖赏宰相。达依尔说:陛下,我别无他求,请你在这张棋盘的第一个格子里赏我一粒麦子;在第2个格子里赏我2粒麦子;在第3个格子里赏我4粒麦子;在第4个格子里赏我8粒麦子……依此类推直到64个格子,按这张棋盘上各格应赏的麦子全赏给我吧。
国王听了,觉得达依尔的要求并不高,说道:你能如愿以偿的。然而,国王却不知道这个数字是多么巨大啊!
你能帮助国王算算第n个格子的麦子数量吗?
输入格式
从键盘输入正整数n (n<65)。
输出格式
在屏幕输出第n个格子的麦子数量,注意不能以科学记数法表示。
输入/输出例子1
输入:
40
输出:
549755813888
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int main(){
unsigned long long n,a[65];
a[1] = 1;
cin >> n;
for(int i = 2; i <= n; i++) a[i] = a[i-1]*2;
cout << a[n];
return 0;
}
unsigned long long 是比long long 还要大的整数类型
这期题目讲解到此结束,请给我一个点赞、关注、评论,谢谢!