首页 > 代码库 > 超级加法
超级加法
偶然机会看到一段代码,我想起一个题目,当时不会做,题目名叫超级加法,题目是这么说的,要实现超大整数的加法,那么众所周知int支持的整型大小虽然比较大,有2^64二进制单位那么大,但是显然处理不了几百位甚至上千位十进制的数的加法,但改代码利用数组可以做到。注:本代码不是我所写,但是是有bug的,本人稍微修改下可以正常运行。
1 #include<stdio.h> 2 #include<string.h> 3 int a[10000],b[10000],c[10000]; 4 int jin,x,i,j,k,l,la,lb,lc; 5 char s1[10000],s2[10000]; 6 7 void superAdd() 8 { 9 if (la>lb) lc=la;10 else lc=lb;11 jin=0;12 for (i=0;i<lc;i++) {13 x=a[i]+b[i]+jin;14 c[i]=x%10;15 jin=x/10;16 }17 if (jin != 0) {18 lc++;19 c[lc]=jin;20 }21 for (i=0;i<lc;i++)22 printf("%d",c[i]);23 printf("\n");24 }25 26 int main()27 {28 scanf("%s%s",&s1,&s2);29 la=strlen(s1);30 lb=strlen(s2);31 for (i=0;i<la;i++)32 a[i]=s1[i]-‘0‘;33 for (i=0;i<lb;i++)34 b[i]=s2[i]-‘0‘;35 superAdd();36 37 return 0;38 }
超级加法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。