酷代码 AI
菜单

城主在生日的时候,会把自己的生日蛋糕分给城里的小朋友。每年会把蛋糕分成当时年龄的数量,因为城主也喜欢吃蛋糕,所以他每年都会给自己留一块,把剩下的分出去。现在城主刚过完150岁的生日,已经分出去了n块蛋糕。 请你编写程序计算一下城主是是从几岁开始养成这个习惯的。(数据保证 n 一定有解,且最值答案大于1) 输入: 输入包括一行,包含一个整数n,表示城主到现在为止总共分出的蛋糕的数量。 输出: 输出包括一行,包含一个整数,表示城主开始有这个习惯的年龄。 输入样例: 1: 149 输出样例: 1: 150 输入样例: 2: 11039 输出样例: 2: 18 时间/内存: 1000MS/100MB

```python # 获取输入的总共分出蛋糕的数量 n = int(input()) # 从2岁开始遍历到150岁,作为可能的开始年龄 for start_age in range(2, 151): # 计算从开始年龄到150岁分出去的蛋糕总数 total = 0 for age in range(start_age, 151): # 每年分出去的蛋糕数是年龄减1 total = total + (age - 1) # 如果分出去的蛋糕总数等于输入的n if total == n: # 输出开始年龄 print(start_age) break ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 注意遍历开始年龄的范围,因为题目中说明最值答案大于1,所以从2开始遍历。 2. 在计算每年分出去的蛋糕数时,要记得城主自己留一块,所以是年龄减1。 3. 当找到符合条件的开始年龄后,要及时使用`break`语句跳出循环,避免不必要的计算。 [2026-01-03 19:46:48 | AI写代码神器 | 257点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多