=32768 ,他的各位和是 3+2+7+6+8=263+2+7+6+8=26 。
输入 nn ,求 2n2n 的各位和。
输入格式
第一行输入组数T, 接下来T行,每行一个整数n。 (1 <= T <= 1000,1 <= N <= 1000)
输出格式
对于每组数据,输出一个数,表示2的n次方的各位和。
输入样例
4
3
4
7
1000
输出样例
8
7
11
1366
利用高精大数,预先计算所有 ≤21000≤21000 的 22 的幂的数位和。
#include<bits/stdc++.h>
using namespace std;
int n, t, sum[1005], a[350];
int main()
{
a[1] = 2;
sum[1] = 2;
for(int i = 2; i <= 1000; i++)
{
int c = 0;
for(int j = 1; j <= 310; j++)
{
int w = a[j] * 2 + c;
a[j] = w % 10;
c = w / 10;
}
for(int j = 1; j <= 310; j++)
{
sum[i] += a[j];
}
}
cin >> t;
while(t--)
{
cin >> n;
cout << sum[n] << endl;
}
return 0;
}