字符串实现特大整数加法
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include<stdio.h> #include<string.h> int main() { char s1[500],s2[500]; int i,k,flag; int a[500]={0},b[500]={0}; scanf ( "%s %s" ,s1,s2); for (i=0;i< strlen (s1);i++) a[i]=s1[ strlen (s1)-i-1]- '0' ; //倒置输入并且把char转型为int for (i=0;i< strlen (s2);i++) b[i]=s2[ strlen (s2)-i-1]- '0' ; k = strlen (s1) > strlen (s2) ? strlen (s1) : strlen (s2); flag=0; for (i=0;i<k;i++) { flag+=a[i]+b[i]; a[i]=flag % 10; //进位 flag=flag/10; } if (flag==1) //将新增一位1 进位 { printf ( "1" ); } for (i=k-1;i>=0;i--) //倒序打出 { printf ( "%d" ,a[i]); } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步