两大数相加,用字符串表示。
求s1+s2=s3.
代码:
#include <stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
int main()
{
char s1[200],s2[200];
int num1[200]={0},num2[200]={0},len1,len2,i,n,k,c; //数组清零
scanf("%d",&n);
while(n--){
scanf("%s",s1);
scanf("%s",s2);//输入两个大数装入字符数组
len1=strlen(s1);
len2=strlen(s2);//获得大数的长度
if(len1>len2)
k=len1;
else
k=len2;
c=k;
for(i=0;i<len1;k--,i++)
num1[k]=s1[len1-1-i]-'0';
for(i=0,k=c;i<len2;k--,i++)
num2[k]=s2[len2-1-i]-'0';//将字符数组的值转为整形数值并装入数组
for(i=c;i>0;i--)
{
num1[i]+=num2[i];
if(num1[i]>9)
{
num1[i]=num1[i]-10;
num1[i-1]++;
}
}
if(num1[0]!=0){
for(i=0;i<=c;i++)
cout<<num1[i];
}
else{
for(i=1;i<=c;i++)
cout<<num1[i];
}
printf("\n");
}
return 0;
}