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

C++实现计算城主开始分蛋糕习惯的年龄

### 📝问题分析 已知城主每年生日会把蛋糕分成和自己年龄相同数量的块,自己留一块,其余分出去,现在知道总共分出去的蛋糕数`n`,要计算出城主从几岁开始养成这个习惯。可以通过枚举开始年龄,计算从该年龄到150岁分出去的蛋糕总数,找到满足总数等于`n`的开始年龄。 ### 💻代码实现 ```cpp #include <iostream> using namespace std; int main() { int n; // 输入分出去的蛋糕总数 cin >> n; // 枚举开始年龄 for (int startAge = 2; startAge < 150; startAge++) { int totalGiven = 0; // 计算从开始年龄到150岁分出去的蛋糕总数 for (int age = startAge; age <= 150; age++) { totalGiven += age - 1; } // 如果分出去的蛋糕总数等于n,输出开始年龄 if (totalGiven == n) { cout << startAge << endl; break; } } return 0; } ``` ### 📋代码解释 1. **输入处理**:使用`cin`读取分出去的蛋糕总数`n`。 2. **枚举开始年龄**:使用外层`for`循环从2到149枚举开始年龄。 3. **计算分出去的蛋糕总数**:对于每个开始年龄,使用内层`for`循环计算从该年龄到150岁分出去的蛋糕总数。 4. **判断并输出结果**:如果分出去的蛋糕总数等于`n`,输出开始年龄并使用`break`跳出循环。 ### ⚙️复杂度分析 - **时间复杂度**:$O(m^2)$,其中$m$是最大年龄(这里是150)。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 475点数解答 | 2026-08-08 20:06:03]

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