码迷,mamicode.com
首页 > 其他好文 > 详细

杭电1002(大数相加)

时间:2015-05-14 16:18:37      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

  

第一道大数,做这个题要细心,,

#include<stdio.h> #include<string.h> int main() { int m,n; scanf("%d",&n); m=1; while(n--) { int i,j,k,t; char a[1001],b[1001],c[1001]={0}; scanf("%s %s",&a,&b); if(strlen(a)>=strlen(b)) { for(i=strlen(a)-1,j=strlen(b)-1,k=0;i>=0;i--,j--,k++)//从后往前依次相加; { if(j>=0) c[k]=a[i]+b[j]-‘0‘;//这里数组中的元素是字符; else c[k]=a[i]; } } else if(strlen(a)<strlen(b)) { for(i=strlen(b)-1,j=strlen(a)-1,k=0;i>=0;i--,j--,k++) { if(j>=0) c[k]=a[j]+b[i]-‘0‘; else c[k]=b[i]; } } //puts(c); //printf("%d\n",k); for(i=0;i<strlen(c);i++) { if(i!=strlen(c)-1) { if(c[i]>‘9‘)//if是判断语句,,; {t=i;c[i]-=10;c[++t]++;} } else { if(c[i]>‘9‘) {
         
c[i]-=10;
           
c[++t]=‘1‘;
         }
       } }
    
     strrev(c);//字符串反转;
     printf("Case %d:\n",m); //printf("\n"); printf("%s + %s = %s\n",a,b,c); if(n>0) printf("\n");//注意格式,这边有点坑; ++m; } return 0; }

杭电1002(大数相加)

标签:

原文地址:http://www.cnblogs.com/fengshun/p/4503217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!