You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++计算A*B+C结果各位数之和 代码错误求修正方案

代码问题排查
  • 变量sum定义位置错误:你将sum定义在for循环外层,所有测试用例的计算结果会被累加在一起,且每个用例处理完成后没有重置sum为0,无法得到每个用例独立的计算结果。
  • 位数处理的循环逻辑错误:你拆分的两个while循环存在逻辑漏洞,比如计算102的各位和时,第一个循环遇到末位2相加后t变为10,此时t%10==0会退出第一个循环,第二个循环只会不断把t除以10,不会把高位的1加到sum中。同时数字0本身加和不影响结果,完全没必要单独处理末位为0的场景。
  • 输出逻辑不符合要求:要求输出N个用空格分隔的结果,你当前代码只会输出所有用例累加后的一个sum值,且前后多打了无关空格。
优化实现思路

只需要一个while循环即可完成各位数求和:只要t不等于0,就每次取末位t%10加到sum中,再执行t = t / 10即可,即使某一位是0,加0也不会影响总和,无需额外判断。

修正后的完整代码
#include <iostream>
using namespace std;

// 单独封装各位数求和函数,逻辑更清晰
int digitSum(int num) {
    int sum = 0;
    while (num > 0) {
        sum += num % 10;
        num /= 10;
    }
    return sum;
}

int main ()
{
    int n, a, b, c;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a >> b >> c;
        int res = digitSum(a * b + c);
        // 控制输出格式,第一个结果前不输出空格
        if (i != 0) cout << " ";
        cout << res;
    }
    cout << endl;
    return 0;
}

内容的提问来源于stack exchange,提问作者cs_quant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:27:02