gpt4 book ai didi

c++ - 在 C++ 中处理存储在 double 中的大整数时如何避免舍入/精度错误?

转载 作者:行者123 更新时间:2023-11-28 04:23:50 31 4
gpt4 key购买 nike

<分区>

问题

我正在尝试解决以下问题:

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?

Source

由于精度错误,我一直收到错误的输出。但是,正如您在下面看到的,我尽量确保没有任何东西被舍入,或者因为精度而丢失。我编写的代码与所需的输出 (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;
}

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com