酷代码 AI
菜单
服务商

C++ 编程求解城主养成插蜡烛习惯的起始年龄

以下是解决该问题的 C++ 代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 输入总共插的蜡烛数量 cin >> n; // 遍历可能的起始年龄 for (int startAge = 1; startAge <= 150; startAge++) { int sum = 0; // 计算从起始年龄到 150 岁插蜡烛的总数 for (int age = startAge; age <= 150; age++) { sum += age; } // 如果总数等于输入的 n,则输出起始年龄 if (sum == n) { cout << startAge << endl; break; } } return 0; } ``` ### 代码解释: 1. **输入处理**:使用 `cin` 读取输入的整数 `n`,它表示城主到现在为止总共插的蜡烛的数量。 2. **遍历起始年龄**:使用一个外层循环遍历所有可能的起始年龄,范围从 1 到 150。 3. **计算蜡烛总数**:对于每个可能的起始年龄 `startAge`,使用一个内层循环计算从 `startAge` 到 150 岁插蜡烛的总数 `sum`。 4. **检查总数是否匹配**:如果计算得到的总数 `sum` 等于输入的 `n`,则输出起始年龄并使用 `break` 语句跳出循环。 ### 复杂度分析: - **时间复杂度**:$O(m * k)$,其中 `m` 是可能的起始年龄的数量(这里是 150),`k` 是从起始年龄到 150 岁的年龄范围。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 447点数解答 | 2026-03-28 20:54:14]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]