酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

城主生日蜡烛问题:C++ 枚举求开始年龄

这个问题需要我们从数学规律中推导出答案。思路是: 如果城主从 `a` 岁开始,现在 150 岁,总共蜡烛数为 `n`,那么从 `a` 到 `150` 的整数之和就是 `n`。 等差数列求和公式: \[ \frac{(a + 150) \times (150 - a + 1)}{2} = n \] 我们只需要枚举或解方程找出 a 即可。 下面是完整的 C++ 解法代码。 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 从 1 到 150 枚举开始年龄 for (int start = 1; start <= 150; start++) { // 计算从 start 到 150 的和 int count = 150 - start + 1; // 项数 int sum = (start + 150) * count / 2; // 等差数列和 if (sum == n) { cout << start << endl; return 0; } } return 0; } ``` ### 代码说明 - **等差数列求和公式**:`(首项 + 末项) * 项数 / 2` - **枚举起点**:从 `1` 到 `150` 依次判断总和是否等于输入的 `n` - 一旦匹配,输出开始年龄并结束程序 ######[AI问答 | 330点数解答 | 2026-07-19 19:44:54]

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