1 条题解

  • 1
    @ 2024-11-23 19:26:03

    这道题真的很难

    首先,我们要知道这道题的步骤

    但,在完成这些步骤前,我们要先完成这些。

    const int maxn = 500+5;
    int a[maxn];//加数
    int b[maxn];//加数
    int c[maxn];//进位
    int ans[maxn];//结果
    string s;//不搞这个没法一次性输入加数
    

    步骤一共有四步

    一,把s中的值移入a

    依然有个前提,就是要先定义这个 int la = s.length();//加数的长度 代码如下

    cin >> s;//输入加数
    int la = s.length();
    for(int i=1;i<=la;i++){
        a[i] = s[la-i]-'0';//把s中的值倒着加入
    }
    

    至于为什么要减去字符0可以看这个 第二步同上 再这样加

    int len = max(la,lb);
    for(int i=1;i<=len;i++){
        ans[i] = (a[i] + b[i] + c[i])%10;
        c[i+1] = (a[i] + b[i] + c[i])/10;
    }
    

    最后这样输出

    if(c[len+1] != 0){//特判
    	cout << c[len+1];
    }
    for(int i=len;i>=1;i--){
    	cout << ans[i];
    }
    
    • 1

    信息

    ID
    5659
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    122
    已通过
    66
    上传者