top1编程
← 返回题目
题解

【入门】四位数的和

1 条题解

  • 0
    @ 2026-8-1 9:28:04

    解题思路

    题目要求一个四位整数的各位数字之和。比如 3456,就是 3+4+5+6 = 18。

    怎么把每一位取出来? 关键用两个操作:

    • n % 10:得到 n 的最低位(个位)。例:3456 % 10 = 6
    • n / 10:去掉最低位。例:3456 / 10 = 345

    于是可以从低位到高位一位一位拆:

    1. 用 n % 10 取出当前最低位,加到总和 sum 上;
    2. 用 n / 10 去掉这一位;
    3. 重复上面两步,直到 n 变成 0。

    对 3456 来说,依次取出的是 6、5、4、3,虽然顺序和"千位、百位、十位、个位"相反,但加法顺序不影响结果,加起来一样是 18。

    参考代码

    #include <iostream>  // 用于 cin/cout 输入输出
    using namespace std;
    
    int main() {
        int n;  // 四位整数
        cin >> n;
    
        int sum = 0;  // 记录各个位的和
        // 从最低位开始,一位一位取出并累加
        while (n > 0) {
            sum += n % 10;  // 取出当前最低位,加到总和上
            n /= 10;        // 去掉最低位,继续看下一位
        }
    
        cout << sum;  // 输出各位数字之和
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(1)——四位整数最多循环 4 次,循环次数固定
    • 空间复杂度:O(1)——只用了一个变量 sum
    • 1