酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++求区间[n,m]内所有整数和的等差数列公式实现

这是一个简单的等差数列求和问题,可以直接用公式 `(首项+末项) * 项数 / 2` 解决,无需循环累加,高效且不易溢出。 ## 🧮 解题思路 利用等差数列求和公式,从 n 到 m 的整数和为: ``` 总和 = (n + m) * (m - n + 1) / 2 ``` 注意结果可能超出 `int` 范围,使用 `long long` 类型存储。 ## 💻 C++ 代码实现 ```cpp #include <iostream> using namespace std; int main() { int t; cin >> t; while (t--) { long long n, m; cin >> n >> m; long long cnt = m - n + 1; // 项数 long long sum = (n + m) * cnt / 2; cout << sum << endl; } return 0; } ``` ## 📌 代码说明 - 使用 `long long` 防止乘法溢出。 - 先计算项数 `cnt`,再套用公式,避免除法精度问题(因为 `(n+m)` 和 `cnt` 相乘后必为偶数)。 - 时间复杂度 O(t),空间复杂度 O(1)。 ######[AI问答 | 297点数解答 | 2026-08-22 20:53:33]

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