hdu 1002 A + B Problem II(大数)
发布时间:2020-12-14 02:55:13 所属栏目:大数据 来源:网络整理
导读:题意:就是求a+b (a,b都不超过1000位) 思路:用数组存储 第一道大数的题目,虽然很水,纪念一下! 代码: #includecstdio#includecstringint main(){ int t,lena,lenb,i,j,sum,testcase=0; char a[1024],b[1024]; char c[1024];//存 a+b int co;//进位 sc
题意:就是求a+b (a,b都不超过1000位) 思路:用数组存储 第一道大数的题目,虽然很水,纪念一下! 代码: #include<cstdio> #include<cstring> int main(){ int t,lena,lenb,i,j,sum,testcase=0; char a[1024],b[1024]; char c[1024];//存 a+b int co;//进位 scanf("%d",&t); int tt=t; while(t--){ co=0; memset(c,' ',sizeof(c)); testcase++; scanf("%s%s",a,b); lena=strlen(a); lenb=strlen(b); if(lena<lenb){//b长 for(i=lena-1,j=lenb-1;i>=0;i--,j--){ sum=(a[i]-'0')+(b[j]-'0')+co; c[j]='0'+sum%10; co=sum/10; } for(;j>=0;j--){ sum=b[j]-'0'+co; c[j]='0'+sum%10; co=sum/10; } } else{//否则 for(i=lena-1,j=lenb-1;j>=0;i--,j--){ sum=(a[i]-'0')+(b[j]-'0')+co; c[i]='0'+sum%10; co=sum/10; } for(;i>=0;i--){ sum=a[i]-'0'+co; c[i]='0'+sum%10; co=sum/10; } } printf("Case %d:n",testcase); printf("%s + %s = ",b); if(co!=0) printf("%d",co);//最高位有溢出,则输出最高位的进位 printf("%sn",c); if(testcase<tt) printf("n");//注意格式,最后一组没有空行 } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |