找出所有能表示为两个连续正整数乘积的C++算法实现
```cpp #include <iostream> #include <cmath> using namespace std; int main() { int n; cout << "请输入上限n: "; cin >> n; cout << "小于等于" << n << "的能够表示成两个连续正整数乘积的数有:" << endl; // 遍历可能的第一个因子i,i从1开始 for (int i = 1; i <= sqrt(n) + 1; i++) { int product = i * (i + 1); // 计算连续乘积 if (product <= n) { cout << product << " = " << i << " × " << (i + 1) << endl; } else { break; // 一旦乘积超过n,后续的乘积只会更大,提前结束 } } return 0; } ``` ### 💡 解题思路 - 两个连续正整数可表示为 `i` 和 `i+1`,它们的乘积为 `i * (i+1)` - 由于乘积需要 ≤ n,因此因子 `i` 最大不超过 `sqrt(n)`(因为 `i*(i+1) > i²`,当 `i² > n` 时乘积必然大于 n) - 从 i=1 开始遍历,找到所有满足条件的结果 ### ⚠️ 开发注意要点 - 循环边界:`i ≤ sqrt(n) + 1` 是为了覆盖临界情况,避免遗漏 - 提前终止:当乘积超过 n 时,后续的 i 只会产生更大的乘积,可以直接 break - 数据类型:使用 int 类型时注意 n 的范围,如果 n 较大(超过 46340)建议使用 long long ######[AI问答 | 393点数解答 | 2026-05-22 19:52:36]
- C++实现:画家在洪水中安全回家的最短时间求解(百度文心 | 1384点数解答 | 2025-03-16 17:33:49)416
- C++ 实现:按顺序存储并输出战力 1 - 10 守卫数量(DeepSeek | 130点数解答 | 2026-01-17 14:11:22)78
- C++实现按战力顺序输出守卫数量(字节豆包 | 185点数解答 | 2026-02-25 22:33:20)47
- C++实现按战力顺序输出守卫数量(字节豆包 | 497点数解答 | 2026-03-20 20:01:06)27
- 小核桃存储守卫战力数量的Python程序实现(字节豆包 | 150点数解答 | 2026-04-03 19:47:58)35
- 使用C++实现存储守卫战力并按顺序输出的程序(字节豆包 | 224点数解答 | 2026-04-12 19:13:22)19
- C++实现按战力顺序输出守卫数量(字节豆包 | 178点数解答 | 2026-05-16 20:40:13)10
- C++实现按战力顺序输出守卫数量的程序及开发建议(字节豆包 | 650点数解答 | 2026-05-16 21:25:38)18
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)392
- Python 实现:根据入职年限和销售业绩精准计算职工奖金并列表输出(字节豆包 | 215点数解答 | 2024-11-07 01:01:17)121
- 深入解析洛谷打卡系统:规则揭秘与代码实现(字节豆包 | 316点数解答 | 2025-11-16 19:45:59)141
- 破解密码锁:Python 实现最少操作次数计算,复杂度低超高效!(字节豆包 | 377点数解答 | 2025-11-08 22:11:16)135