Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;学位全数_C++ - Fatal编程技术网

C++ 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;

这是一个简单的代码,可以正确地计算两次。从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;
}
#包括
使用名称空间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种不同的要求;)