zoukankan      html  css  js  c++  java
  • 超级加法

    偶然机会看到一段代码,我想起一个题目,当时不会做,题目名叫超级加法,题目是这么说的,要实现超大整数的加法,那么众所周知int支持的整型大小虽然比较大,有2^32二进制单位那么大,longlongint更大,有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("
    ");
    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 }
  • 相关阅读:
    javaSE基础(三)
    javaSE基础(二)
    javaSE基础(一)
    文件目录爬虫
    前自增 与 后自增
    查找 与 排序 总结
    python 使用 grpc
    python3.7 安装 uwsgi
    go
    go
  • 原文地址:https://www.cnblogs.com/Boxer1994/p/5854913.html
Copyright © 2011-2022 走看看