美文网首页算法
c/c++大整数加法

c/c++大整数加法

作者: harvey_dong | 来源:发表于2017-06-03 17:01 被阅读10次

刚入门编程语言的同学可能对大整数加法合乘法有点小头疼。在这里就给大家分享下。希望对大家有所帮助。下面进入正题

Description

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

Input

有两行,每行是一个不超过200位的非负整数,没有多余的前导0。

Output

一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

Sample Input

22222222222222222222

33333333333333333333

Sample Output

55555555555555555555

代码:

#include <stdio.h>

#include<string.h>

int main(int argc, char *argv[])

{

    int a[200]={0},b[200]={0},i,j,m,l,k,t,h;

    char aa[200],bb[200];

    scanf("%s%s",&aa,&bb);

    l=strlen(aa);              //  计算aa长度

    t=strlen(bb);                 //  计算bb长度

    for(m=0,j=l-1;j>=0;j--,m++)

        a[m]=aa[j]-'0';                //要把字符转化成数字

    for(m=0,j=t-1;j>=0;j--,m++)

        b[m]=bb[j]-'0';                 //要把字符转化成数字

    h=l>t?l:t;

    for(i=0;i<h ; i ++)

        a[i]+=b[i];                        //将相对应的数字相加

//下面这一步是将超过10的位数进位

    for(i=0;i<h;i++)

        if(a[i]>=10)

      {

          a[i+1]=a[i+1]+a[i]/10;

         a[i]%=10;

      }

//这里要倒着输出哦!!!

       for(i=h;i>=0;i--)

        if(a[i]==0)continue;

        else{    k=i;break;    }

        for(i=k;i>=0;i--)

           printf("%d",a[i]);

    printf("\n");

    return 0;

}

相关文章

  • c/c++大整数加法

    刚入门编程语言的同学可能对大整数加法合乘法有点小头疼。在这里就给大家分享下。希望对大家有所帮助。下面进入正题 De...

  • All for PAT秋考 | 1136 - 1139

    涉及知识1136 大整数加法(字符串,这次用了c++ string)1137 筛选分类排序,取整注意+0.5113...

  • 【C/C++】超长正整数的加法

    这些题目都是大一刚入学时学习C语言的课后作业,在OJ上看到还保留着,就都整理下发出来吧......(只有题和代码)...

  • c/c++大整数乘法

    Description 求两个不超过200位的非负整数的积。 Input 有两行,每行是一个不超过200位的非负整...

  • 大整数加法

    题目地址:http://noi.openjudge.cn/ch0106/10/题目:总时间限制: 1000ms 内...

  • 大整数加法

  • 大整数加法

    时间限制:3000 ms | 内存限制:65535 KB | 难度:3 描述 I have a very si...

  • 大整数减法——C++实现

  • 2981大整数加法

    最后得考虑都为0的情况。

  • 2019-11-17

    ##大整数题 整体套路还是字符串模拟 ###加法 首先判断大数的符号: 1.同号相加,异号相减 ```c //判断...

网友评论

    本文标题:c/c++大整数加法

    本文链接:https://www.haomeiwen.com/subject/fjkmfxtx.html