<分区>
问题
我正在尝试解决以下问题:
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?
由于精度错误,我一直收到错误的输出。但是,正如您在下面看到的,我尽量确保没有任何东西被舍入,或者因为精度而丢失。我编写的代码与所需的输出 (1366) 相差两倍 (1364)。如何优化我的代码才能不因精度和舍入错误而丢失任何其他内容?
我的代码
#include <iostream>
#include <tgmath.h>
#include <string>
using namespace std;
int main() {
int sum=0;
double N = pow(2.0, 1000.0);
string num = to_string(N);
for(int i=0; i<num.size(); i++) {
sum += num[i] - '0';
}
cout<<sum;
return 0;
}