C++ C++;学位全数
这是一个简单的代码,可以正确地计算两次。从60度左右开始,答案是不正确的。 我需要数到2^200。答案不应该是“1.606938e+60”这样的形式,而应该是数字。在C++中如何做到这一点?C++ C++;学位全数,c++,C++,这是一个简单的代码,可以正确地计算两次。从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;
#include <iostream>
using namespace std;
int main()
{
unsigned long long int n,z;
cin>>n;
z=pow(2,n);
cout<<z<<endl;
return 0;
}
#包括
使用名称空间std;
int main()
{
无符号长整型n,z;
cin>>n;
z=功率(2,n);
cout您需要使用std::set_precision(n)
以您期望的格式打印,但如果您的数字足够高,您将遇到第二个问题。pow
返回一个双精度值,该值在使用大量数字时会大大降低精度。有关如何解决此问题的详细信息,请参阅。无论如何,您无法打印单个整数或dou这样大的数字C++中的BLE值(还没有)。也许存在256个或512个机器结构,在类型中构建的实现足够大,但不可能是通用的。您可能需要使用一些数据结构来存储您的编号并操作它。
,示例可能会有所帮助。不清楚您在问什么,以什么方式1.606938e+60
不是数字?您想要不同的符号?所有数字?您知道pow()的返回类型吗
?您希望类型的宽度为多少位无符号长
?一个无符号整数中需要多少位来存储2到200的幂的值?为自己准备一个大数字库。无符号长
通常最多只能容纳2^64
@user463035818是的,所有数字,但如果不可能,只需用“e+”回答即可。0b1000000000000…0000000000
:-)恐怕这不是完整的答案-不清楚是双重松开还是转换为long
非常感谢!一切都很好!如果是这样,我担心我们都严重误读了问题。@user4581301打印数字r格式正确,打印正确的数字可能是2种不同的要求;)