大整数加法(高精度)
对于一些超过100位的大整数,我们不可能直接去计算,
否者将超出编译器的规定范围而出错!!!所以,你只能
利用字符串数组的知识来解这样的题,呵呵呵!!!
不多说了,下面看程序吧!!哈
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int Num[105][105];
char num[105];
int answer[105];
int i,j,k,l,m,c,s;
int N;
cin>>N;//N 代表有N个测试实例!!!
while(N--)
{
getchar();
memset(Num,0,sizeof(Num));
memset(num,0,sizeof(num));
for(i=0;i<105;i++)
{
gets(num);
if(strcmp(num,"0")==0)
break;
int len=strlen(num);
for(j=len-1,k=0;j>=0;j--,k++)
Num[i][k]=num[j]-'0';
} c=0;
for(m=0,j=0;m<105;j++,m++)
{
s=0;
for(l=0;l<=i-1;l++)
s+=Num[l][m];
s+=c;
Num[l][m]=s%10;
c=s/10;
answer[j]=Num[l][m];
}
for(i=104;i>=0;i--)
if(answer[i]!=0)
break;
for(j=i;j>=0;j--)
cout<<answer[j];
cout<<endl;
}
return 0;
}