题解
学生报数3
1 条题解
-
0
解题思路
报数规则是偶数:第 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