top1编程
← 返回题目
题解

学生报数3

1 条题解

  • 0
    @ 2026-8-4 21:06:23

    解题思路

    报数规则是偶数:第 1 名报 2、第 2 名报 4……第 i 名报 2×i。一直累加,当累加和大于等于 1000 时停止,输出累加和和此时的名次。

    验证:2+4+...+62 = 992,再加 64 得到 1056 ≥ 1000,所以报到第 32 名结束。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int sum = 0;
        for (int i = 1;; i++) {
            sum += 2 * i;              // 第i名报2i
            if (sum >= 1000) {         // 达到1000停止
                cout << sum << endl;   // 累加和
                cout << i << endl;     // 第几名同学
                break;
            }
        }
        return 0;
    }
    

    复杂度分析

    最多循环几十次,时间复杂度 O(1),额外空间复杂度 O(1)。

    • 1