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\)。