我正在使用Project Euler来提高我的C++编码技能,为下一学期我们将要进行的编程挑战做准备(因为他们不让我们使用Python,嘘!).
我在#16,我正试图找到一种方法来保持2°°的真正精确度
例如:
int main(){
double num = pow(2, 1000);
printf("%.0f", num):
return 0;
}
Run Code Online (Sandbox Code Playgroud)
版画
10715086071862673209484250490600018105614050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
缺少大部分数字(来自python):
>>> 2**1000
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376L
当然,我可以用Python 1衬里编写程序
sum(int(_) for _ in str(2**1000))
Run Code Online (Sandbox Code Playgroud)
这给了我立即的结果,但我正试图找到一种方法在C++中做到这一点.有什么指针吗?(哈哈...)
编辑:
标准库之外的东西对我来说毫无价值 - 在这些竞赛中只允许使用死树代码,而且我可能不会打印10,000行外部代码......