1-6-10:大整數加法


描述

求兩個不超過200位的非負整數的和。

輸入有兩行,每行是一個不超過200位的非負整數,可能有多余的前導0。輸出一行,即相加后的結果。結果里不能有多余的前導0,即如果結果是342,那么就不能輸出為0342。樣例輸入

22222222222222222222
33333333333333333333

樣例輸出

55555555555555555555
 1 #include <stdio.h>
 2 #include<string.h>
 3 int a[1001]={0}, b[1001]={0};
 4 int i, ka, kb, k,c,temp,len;
 5 char s[2002],ch;
 6 void plus()
 7 {
 8     for(i = 0; i < k; i++)
 9     {
10         a[i] = a[i] + b[i] + c;
11         if (a[i]>=10)
12         {a[i]= a[i]%10; c=1;}    
13         else c=0;
14     }
15     if(c>0) {a[k]=c; k++;}
16 }
17 int main()
18 {
19     scanf("%s",s);
20     k=0;len=strlen(s);
21     while(k<len)
22     { 
23         a[k]=s[k]-'0';
24         k++;
25     }
26     ka=k;
27     scanf("%s",s);
28     k=0;len=strlen(s);
29     while(k<len)
30     { 
31         b[k]=s[k]-'0';
32         k++;
33     }
34     kb=k;
35     if(ka >= kb) k = ka;
36     else
37         k = kb;
38     for(i = 0; i < ka/2; i++)
39     {
40         temp=a[i];
41         a[i]=a[ka-i-1]; 
42         a[ka-1-i] =temp;
43     }
44     for(i = 0; i < kb/2; i++)
45     {
46         temp=b[i];
47         b[i]=b[kb-i-1];
48         b[kb-1-i] =temp;
49     }
50     c=0;
51     plus();
52     for(i = k-1; i >= 0; i--)
53     printf("%d",a[i]);       
54     return 0;
55 }//只對了九個..

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM