酷代码 AI
菜单
服务商

小核桃的机关数字求和:C++高效解法与公式推导

```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 总和的公式推导: // 第 i 行包含数字 1 到 i,其和为 i*(i+1)/2 // 所有行的总和为 sum_{i=1}^{n} [i*(i+1)/2] // = 1/2 * sum_{i=1}^{n} (i^2 + i) // = 1/2 * [n(n+1)(2n+1)/6 + n(n+1)/2] // = n(n+1)(n+2)/6 long long sum = (long long)n * (n + 1) * (n + 2) / 6; cout << sum << endl; return 0; } ``` **代码说明:** - 使用 `long long` 类型存储结果,防止 `n` 较大时溢出。 - 直接使用推导出的公式 `n(n+1)(n+2)/6` 计算总和,时间复杂度 O(1)。 - 公式推导过程已在注释中说明。 ######[AI问答 | 273点数解答 | 2026-02-27 19:54:06]

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