酷代码 AI
菜单
服务商

C++求解:年龄成等差数列、和为26积为880的四人年龄组合

```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)$,只使用了常数级的额外空间。 ######[AI问答 | 503点数解答 | 2026-02-01 09:36:35]

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