C++ 计算长整型的和

C++ 计算长整型的和,c++,c++14,C++,C++14,(计算长数字之和) 每当我输入一个长数字时,程序总是返回-1或-2,有人知道为什么吗 #include <iostream> #include <math.h> #include <string> #include<iomanip> using namespace std; int main() { int n,i; long long x1,x2,s; do{ cin>>n; }while(n<1); long long t1[

(计算长数字之和)

每当我输入一个长数字时,程序总是返回-1或-2,有人知道为什么吗

#include <iostream>
#include <math.h>
#include <string>
#include<iomanip>
using namespace std;
int main()
{
int n,i;
long long x1,x2,s;
do{
cin>>n;
}while(n<1);
long long t1[n];
long long t2[n];
string ch1,ch2;
i=0;
do{
    do{
        scanf("%lld %lld", &x1, &x2);   
        ch1=to_string(x1);
        ch2=to_string(x2);
    }while((ch1.length()>pow(10,5)) || (ch2.length()>pow(10,5)));
t1[i]=x1;
t2[i]=x2;
i++;
}while(i<n);
for(i=0;i<n;i++){
    s=t1[i]+t2[i];
    cout<<s<<endl;
}
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
int n,i;
长x1,x2,s;
做{
cin>>n;
}而(npow(10,5))| |(ch2.length()>pow(10,5));
t1[i]=x1;
t2[i]=x2;
i++;

}(i<P>基本代码类型,如LoLoWix/Cux>),它们的范围有限,如果计算结果比所表示的结果大,则溢出,符号整数溢出在C++中有未定义的行为。 通过使用整数数组来表示数字的不同部分,可以表示无限范围的数字(理论上,内存限制了实践)。这种技术称为任意精度算术


在C++标准库中没有实现任意精度类型,所以您必须自己实现一个,或者可以使用其他实现的库。< /P>您可以粘贴一个用常量替换的UI输入的例子吗?关于输入循环:你认为是什么可能是<代码>长长< /代码>?(最有可能是64位)将有超过100000个十进制数字?有没有一种方法可以计算这样的数字之和?有没有其他库或其他什么?@medamine查看GMP:@JesperJuhl你能提供更多关于这个库的信息以及如何声明100000个数字吗?