Power digit sum
(2^{15} = 32768) and the sum of its digits is (3 + 2 + 7 + 6 + 8 = 26).
What is the sum of the digits of the number (2^{1000})?
幂的数字和
(2^{15} = 32768),而 (32768) 的各位数字之和是 (3 + 2 + 7 + 6 + 8 = 26)。
(2^{1000}) 的各位数字之和是多少?
解题思路
没有比较好的想法。目前的想法是高精度模拟。
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
int a[500], n = 1, ans;
int main() {
a[0] = 1;
for (int i = 0; i < 1000; i ++) {
for (int j = 0; j < n; j ++) a[j] *= 2;
for (int j = 0; j < n; j ++) {
a[j+1] += a[j]/10;
a[j] %= 10;
}
if (a[n]) n ++;
}
for (int i = n-1; i >= 0; i --) {
// cout << a[i];
ans += a[i];
}
// cout << endl;
cout << ans << endl;
return 0;
}
答案为 (1366)。