追风少年_9 2022-08-03 11:38 采纳率: 78.6%
浏览 66
已结题

noi 1.6 10:大整数加法结果出错

问题遇到的现象和发生背景

10:大整数加法
总时间限制: 1000ms 内存限制: 65536kB
描述
求两个不超过200位的非负整数的和。
输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222
33333333333333333333
样例输出
55555555555555555555
来源
程序设计实习2007

问题相关代码,请勿粘贴截图
#include<bits/stdc++.h>

using namespace std;

int main()
{
 string az,bz;
    cin>>az>>bz;
    int a[strlen(az.c_str())],b[strlen(bz.c_str())];
    for(int i=0;i<strlen(az.c_str());i++)
    {
        a[i]=az[i]-'0';
    }
    for(int i=0;i<strlen(bz.c_str());i++)
    {
        b[i]=bz[i]-'0';
    }
    int g=strlen(az.c_str())>=strlen(bz.c_str())?strlen(az.c_str()):strlen(bz.c_str());
    int h[g+1];
    memset(h,0,sizeof(h));
 for(int i=0;i<=g;i++)
 {
     if(a[i]+b[i]>=10)
     {
         h[i+1]+=1;
         h[i]+=(a[i]+b[i])%10;
        }
        else
        {
            h[i]=a[i]+b[i];
        }
    }
    bool l=false;
    int i;
 for(i=200;i>=0;i--)
 {
     if(h[i]!=0)
         l=true;
     if(l==true)
            cout<<h[i];
    }
 return 0;
}

运行结果及报错内容

输入:
22222222222222222222
33333333333333333333
输出:
199323377300000000000419969100000000000030975721-744678956000000000000000000000000000000051334240250004199348000000010116816016025011151677721621202016019022929920190229291220101144880200229281632896508421504500300200101147843355443858993459030020010115936000200002000020000202222222222222222222233333333333333333333049164481255555555555555555555

我想要达到的结果

输入:
22222222222222222222
33333333333333333333
输出:
55555555555555555555

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-08-03 11:40
    关注

    for(i=200;i>=0;i--)
    这里为啥从200开始输出啊???
    200改为g

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 修改了问题 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么