c++怎么显示更多位的数字?

来源:百度知道 编辑:UC知道 时间:2024/06/04 13:53:38
#include <iostream.h>
main()
{
int a,b,c;
c=50;
cout<<"数列的50项是:"<<endl;
for(int n=1;n<=50;n++)
{
if(n==1)
a=b=1;
else
{
if(a%2!=0)
b=a*2;
else
b=a*2+1;
}
a=b;
cout<<b<<endl;
}
}
这是求数列1,2,5,10,21,42,85,170......的第50项的程序。
到后面都变成负数了,显示不了大数字,程序怎么改成能显示更大的数?

1.int 换为 long
2.想要实现超多位(大于long的范围)存储的话,就用N个 long型变量。相关操作需做些许改变。

把int型的a b 改为long型#include <iostream.h>
main()
{long a,b;
int c;
c=50;
cout<<"数列的50项是:"<<endl;
for(int n=1;n<=50;n++)
{
if(n==1)
a=b=1;
else
{
if(a%2!=0)
b=a*2;
else
b=a*2+1;
}
a=b;
cout<<b<<endl;
}
}

给你改成了显示64位的。
需要用到__int64 关键字。
它定义的变量类型是64位整型。

#include <iostream>
using namespace std;
int main()
{
__int64 a,b,c;
c=50;
cout<<"数列的50项是:"<<endl;
for(int n=1;n<=50;n++)
{
if(n==1)
a=b=1;
else
{
if(a%2!=0)
b=a*2;
else
b=a*2+1;
}
a=b;
printf("%I64d\n",b);
}
system("pause");
return 0;
}

主程序没改