大数相加

最近没什么事,决定把杭电没提交的题一道道的做过去......= =

A + B Problem II

简单的大树相加的题目,以前一直觉得感觉大数相加好麻烦,都没好好的做一下,认真去写还是觉得比较简单(((o(*?▽?*)o)))

代码如下:

TIME:0ms     Memory:260K

大数相加
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n,i=0,k;
 8     scanf("%d",&n);
 9     while(n--)
10     {
11         i++;
12        char a[1010],b[1010],c[1010];
13         scanf("%s%s",a,b);
14         printf("Case %d:\n",i);
15         getchar();
16         printf("%s + %s = ",a,b);
17         int lentha,lenthb,maxx,i,j,xa,xb,x;
18         lentha=strlen(a),xa=lentha;
19         lenthb=strlen(b),xb=lenthb;
20         maxx=max(lentha,lenthb);
21         x=maxx+1;
22         memset(c,0,sizeof(c));
23         for(j=0;j<maxx;j++)
24         {
25             xa--,xb--,x--;
26             int y;
27             char xxa,xxb;
28             if(xa<0) xxa=0; else xxa=a[xa];
29             if(xb<0) xxb=0; else xxb=b[xb];
30             y=c[x]+((xxa-0)+(xxb-0));
31             if(y>=10)
32             {
33                 y=y-10;
34                 c[x]=y+0;
35                 c[x-1]=1;
36             }
37             else c[x]=y+0;
38         }
39        if(c[0]!=0) c[0]=c[0]+0;
40         if(c[0]==0)
41         {
42             for(k=0;k<maxx;k++)
43                 c[k]=c[k+1];
44             c[maxx]=0;
45         }
46          printf("%s\n",c);
47         if(n!=0) printf("\n");
48     }
49     return 0;
50 }
大数相加

大数相加

上一篇:MathJax测试


下一篇:test only