zoukankan      html  css  js  c++  java
  • 大整数加法

    大整数加法

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

    输入格式

    有两行,每行是一个不超过 200200 位的非负整数,可能有多余的前导 00。

    输出格式

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

    输出时每行末尾的多余空格,不影响答案正确性

    样例输入

    22222222222222222222
    33333333333333333333

    样例输出

    55555555555555555555

    代码:

    #include<iostream>
    #include<string.h>
    using namespace std;
    int main(){ 

    char a[203],b[203]; cin>>a>>b; //设置结果的最大位数 int lenmax; if(strlen(a)>strlen(b)){ lenmax = strlen(a)+2; }else { lenmax = strlen(b)+2; } char *c= new char[lenmax]; int i =strlen(a)-1; int j =strlen(b)-1; int k=0,up=0,x,y; while (i>=0||j>=0) { if (i<0) x = 0; else x = a[i]-'0'; if (j<0) y = 0; else y = b[j]-'0'; int z =x+y+up; if (z>9) { z= z%10; up=1; }else { up=0; } c[k++]=z+'0'; i--; j--; } k--; //加完之后发现还有进位 if (up>0) { c[++k]='1'; } //可能存在a 和 b 出现00011这种情况,故需要剃掉0开始的 for (i = k; i >=0; i--) { if(c[i]!='0'){ k=i; break; } } // 输出结果 for(int i=k;i>=0;i--){ cout<<c[i]; } cout<<endl; }

     

    
    

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/12677950.html

  • 相关阅读:
    HDU
    HDU
    HDU
    CodeForces
    还没有过的题目记录
    HDU
    FZU
    排序:根据数组里某个对象排序
    获取当前毫秒数
    选择日期默认月初到月末
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/12677950.html
Copyright © 2011-2022 走看看