大数相加题,逆转再逆转 总卡在1这,提交string又漏了.h,坑爹啊
题目链接http://acm.nyist.net/JudgeOnline/problem.php?pid=272
代码:
#include<stdio.h> #include<string.h> int main() { int s,len1,len2,len,i,k,up; int a[1001],b[1001]; char str1[1001],str2[1001]; scanf("%d", &s); while(s--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s",str1); scanf("%s",str2); len1=strlen(str1); len2=strlen(str2); len=len1>=len2?len1:len2; for(i=0,k=0;i<=len1-1;i++) { a[k++]=str1[i]-'0'; } for(i=0,k=0;i<=len2-1;i++) { b[k++]=str2[i]-'0'; } for(i=0,up=0;i<=len;i++) { a[i]=a[i]+b[i]+up; up=a[i]/10; a[i]=a[i]%10; } for(i=0;i<=len;i++) { if(a[i]) break; } for(k=i;k<=len-1;k++) { printf("%d",a[k]); } if(a[len]==1) printf("1");//**两个数相加进位的首数字一定为1(在这里纠结了好久)**// printf("\n"); } return 0; }