1 条题解

  • 0
    @ 2026-5-15 16:27:20

    题目理解

    给定一个数字 a(1~9),求:

    [ s = a + aa + aaa + aaaa + ... + {n 次 a 的连续累加} ]

    题目示例中给了两个例子:

    • 输入 2,结果为 2 + 22 = 24
    • 输入 5,结果为 5 + 55 + 555 + 5555 + 55555 = 61725

    可以发现规律:

    • 每一项都是前一项 * 10 + a
    • 可以用循环或者递归实现

    C++ 递归解法示例

    #include <iostream>
    using namespace std;
    
    int calcSum(int a, int n) {
        if (n == 1) return a;
        return calcSum(a, n - 1) * 10 + a * n;
    }
    
    int main() {
        int a;
        cin >> a;
    
        int sum = 0;
        for (int i = 1; i <= 5; i++) {
            int term = 0;
            for (int j = 0; j < i; j++) {
                term = term * 10 + a;
            }
            sum += term;
        }
    
        cout << sum << endl;
        return 0;
    }
    

    说明:

    • 外层 for 循环控制项数(这里假设是 5 项,可以改为任意 n)
    • 内层循环生成每一项的值,例如 a=5, i=3 时,生成 555
    • 累加求和得到最终结果

    信息

    ID
    716
    时间
    1000ms
    内存
    16MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者