超级加法

Posted _Boxer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超级加法相关的知识,希望对你有一定的参考价值。

偶然机会看到一段代码,我想起一个题目,当时不会做,题目名叫超级加法,题目是这么说的,要实现超大整数的加法,那么众所周知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 }

 

以上是关于超级加法的主要内容,如果未能解决你的问题,请参考以下文章

10个超级有用必须收藏的PHP代码样例

Android:BottomNavigationView第一个片段开关超级延迟

超实用的php代码片段

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

使用超级时,coffeescript中出乎意料的其他事情

记录--九个超级好用的 Javascript 技巧