这是一个简单的代码,计算两个到正确的程度。从大约60度的某个地方开始,答案是不正确的。 我需要数2 ^ 200。答案不应该是“1.606938e + 60”之类的形式,而应该是数字。如何在C ++中执行此操作?
#include <iostream>
using namespace std;
int main()
{
unsigned long long int n,z;
cin>>n;
z=pow(2,n);
cout<<z<<endl;
return 0;
}
答案 0 :(得分:2)
您需要使用std::set_precision(n)
以您期望的格式打印它,但如果您的数字足够高,您将遇到第二个问题。 pow
返回一个double,它会大量丢失精度。有关如何解决此问题的更多信息,请参阅this Stack Overflow answer。
答案 1 :(得分:1)