#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int c[100],d[100],f[100];
int i,j,k,n,len1,len2,p;
scanf("%d",&n);
while(n--)
{
memset(c,0,sizeof(c));//初始化,这个算大数时很重要
memset(d,0,sizeof(d));
memset(f,0,sizeof(f));
scanf("%s%s",a,b);
len1=strlen(a);
len2=strlen(b);
for(i=0;i<len1;i++)//字符数字转换
c[i]=a[i]-'0';
for(i=0;i<len2;i++)
d[i]=b[i]-'0';
k=len1>=len2?len1:len2;
for(i=0;i<k;i++)
f[i]=c[i]+d[i];
for(i=0;i<k;i++)
{
if(f[i]>9)
f[i+1]=f[i+1]+f[i]/10;//进位
f[i]=f[i]%10;
}
if(a[0]=='0'&&b[0]=='0'&&len1==1&&len2==1)
printf("0");//全是0的情况单列出
if(f[k])//判断最后一位是否进了位
p=1;
else
p=0;
j=0;//记录f[]前有几个0;如0001前有三个0
for(i=0;i<k+p;i++)
{
if(f[i]==0)
j++;
else//遇到不是0的直接结束
break;
}
for(i=j;i<k+p;i++)
printf("%d",f[i]);//输出
printf("\n");
}
return 0;
}
个人认为刷水题是一种锻炼,把一个个水题积攒起来,胜过你刷五道难题甚至更多。总之要厚积薄发。
#include<string.h>
int main()
{
char a[100],b[100];
int c[100],d[100],f[100];
int i,j,k,n,len1,len2,p;
scanf("%d",&n);
while(n--)
{
memset(c,0,sizeof(c));//初始化,这个算大数时很重要
memset(d,0,sizeof(d));
memset(f,0,sizeof(f));
scanf("%s%s",a,b);
len1=strlen(a);
len2=strlen(b);
for(i=0;i<len1;i++)//字符数字转换
c[i]=a[i]-'0';
for(i=0;i<len2;i++)
d[i]=b[i]-'0';
k=len1>=len2?len1:len2;
for(i=0;i<k;i++)
f[i]=c[i]+d[i];
for(i=0;i<k;i++)
{
if(f[i]>9)
f[i+1]=f[i+1]+f[i]/10;//进位
f[i]=f[i]%10;
}
if(a[0]=='0'&&b[0]=='0'&&len1==1&&len2==1)
printf("0");//全是0的情况单列出
if(f[k])//判断最后一位是否进了位
p=1;
else
p=0;
j=0;//记录f[]前有几个0;如0001前有三个0
for(i=0;i<k+p;i++)
{
if(f[i]==0)
j++;
else//遇到不是0的直接结束
break;
}
for(i=j;i<k+p;i++)
printf("%d",f[i]);//输出
printf("\n");
}
return 0;
}
个人认为刷水题是一种锻炼,把一个个水题积攒起来,胜过你刷五道难题甚至更多。总之要厚积薄发。