首页 > 代码库 > 1-6-10:大整数加法
1-6-10:大整数加法
描述
求两个不超过200位的非负整数的和。
输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入
2222222222222222222233333333333333333333
样例输出
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 else37 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 }//只对了九个..
1-6-10:大整数加法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。