城主分蛋糕起始年龄计算
这是一个数学推导加遍历的问题。题目意思是: - 城主从某个年龄 `startAge` 开始,每年生日会分出 `(当前年龄-1)` 块蛋糕(因为给自己留一块)。 - 一直到 150 岁,累积分出的蛋糕总数量等于输入值 n。 我们需要根据 n 反推起始年龄。 🔍 **解题思路** 设起始年龄为 `x`,则从 x 岁到 150 岁每年分出的蛋糕数分别为: ``` x-1, x, x+1, ..., 149 ``` 这是一个等差数列,项数 = `150 - x + 1 = 151 - x` 首项 = `x-1`,末项 = `149` 求和公式: ``` sum = (首项 + 末项) * 项数 / 2 = (x-1 + 149) * (151 - x) / 2 = (x + 148) * (151 - x) / 2 ``` 所以题目变成: 寻找 `x` ∈ [2, 150] 使得: ``` (x + 148) * (151 - x) / 2 == n ``` 直接枚举即可。 🧠 **程序实现** ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 从 2 到 150 枚举起始年龄 for (int x = 2; x <= 150; ++x) { // 从 x 岁到 150 岁分出的蛋糕总数 int sum = (x + 148) * (151 - x) / 2; if (sum == n) { cout << x << endl; return 0; } } return 0; } ``` ⚙️ **解题要点** - 公式推导是关键:`(x + 148) * (151 - x) / 2` 可直接算出从 x 岁到 150 岁的蛋糕分出总量。 - 枚举范围从 2 到 150,因为已知答案大于 1。 - 由于题中保证有唯一解,找到即输出并退出。 ######[AI问答 | 481点数解答 | 2026-07-19 19:46:07]
- Java 编程:实现教师与学生类的创建、继承及属性操作(字节豆包 | 745点数解答 | 2024-10-16 18:40:42)467
- Java 实现学生类:属性封装、静态方法调用与对象信息输出(字节豆包 | 236点数解答 | 2024-09-18 16:15:05)271
- C 语言实现超实用学生管理系统:含插入、删除、修改、查询及文件存储功能 (字节豆包 | 2323点数解答 | 2024-11-01 02:41:20)325
- Python 实现 BMI 类:计算身体质量指数并判定胖瘦(字节豆包 | 377点数解答 | 2024-11-17 19:54:06)183
- Python实现BMI类:精准计算健康指标,判定胖瘦状态(阿里通义 | 616点数解答 | 2024-11-17 19:57:02)148
- Java实现Student类:含构造、方法及年龄判定(字节豆包 | 464点数解答 | 2024-11-19 15:55:26)444
- Java实现:毕业生姓名、年龄、毕业年份与成绩信息输出(阿里通义 | 542点数解答 | 2025-04-17 14:59:23)283
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)160
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)137
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)72
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)68
- Java实现含姓名、性别等信息的注册功能,附Servlet处理及表单代码( | 2286点数解答 | 2024-04-02 14:54:20)331