酷代码 AI
菜单

# 四个人的年龄求解 标签:`标签` ## 题目描述 张三、李四、王五、刘六他们四人的年龄是一个等差数列,且年龄相加是26,相乘是880, 请问这四个人可能的年龄分别是多少?(假设一个人的年龄范围在1\~130之间) ## 输入描述 无 ## 输出描述 按照由小到大输出四个人的年龄的可能的值,数与数用空格隔开,每个可能的年龄方案一行,请输出所有可能的年龄方案!c++

```cpp #include <iostream> using namespace std; int main() { // 遍历首项a的可能取值,范围从1到130 for (int a = 1; a <= 130; ++a) { // 遍历公差d的可能取值,范围从1到130 for (int d = 1; d <= 130; ++d) { int b = a + d; int c = a + 2 * d; int e = a + 3 * d; // 检查每个人的年龄是否在1到130之间 if (b > 130 || c > 130 || e > 130) { continue; } // 检查年龄和是否为26,年龄积是否为880 if (a + b + c + e == 26 && a * b * c * e == 880) { cout << a << " " << b << " " << c << " " << e << endl; } } } return 0; } ``` 代码解释: 1. 双重循环遍历:使用两层`for`循环,外层循环遍历首项`a`的可能取值,范围从1到130;内层循环遍历公差`d`的可能取值,范围从1到130。 2. 计算其他项:根据等差数列的性质,计算出第二项`b`、第三项`c`和第四项`e`。 3. 检查年龄范围:检查计算出的每个人的年龄是否在1到130之间,如果有超出范围的情况,则跳过当前循环。 4. 检查条件:检查年龄的和是否为26,年龄的积是否为880。如果满足这两个条件,则输出这四个年龄。 复杂度分析: - 时间复杂度:$O(n^2)$,其中$n$是年龄的最大可能值(这里是130)。因为使用了两层嵌套的循环。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-02-01 09:36:35 | AI问答 | 503点数解答]

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