大整数加法

  困扰了自己很久,一直想的是用数组存数字,没想到存字符串这种方法。勉强写出来也错了,最后在网上找到了答案  答案摘自(5条消息) 10:大整数加法_你的心,如何追逐?-CSDN博客

题要考虑的地方有 前导0的存在 、进位、两数长度不一样等

描述

求两个不超过200位的非负整数的和。

输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入

22222222222222222222
33333333333333333333

样例输出

55555555555555555555

 

复制代码
 1 #include<cstdio>
 2 #include<cstring>
 3 int main()
 4 {
 5     int i,a[202]={0},b[202]={0},d[202]={0},la,lb,c,m;
 6     char s[202];
 7     scanf("%s",&s);
 8     la=strlen(s);
 9     int t=0;
10     while(t<la)
11     {
12             a[t]=s[la-t-1]-48;
13             t++;
14  }
15     scanf("%s",&s);
16     lb=strlen(s);
17      t=0;
18     while(t<lb)
19     {
20             b[t]=s[lb-t-1]-48;
21             t++;
22  }
23     m=la>lb?la:lb;
24     c=0;
25     for(i=0;i<m;i++)
26     {
27             d[i]=(a[i]+b[i]+c)%10;
28         c=(a[i]+b[i]+c)/10;
29 }
30  if(c)d[m]=c;
31  else
32  {
33     for(i=m;i>0;i--)
34         if(d[i]) break;
35         m=i;
36  }
37  for(i=m;i>=0;i--)
38     printf("%d",d[i]);
39  }
复制代码

 

posted @   同泛舟船  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示