编写程序计算s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值。要求计算尽量高效。 输入 n的值 输出 s的值
时间: 2024-09-06 17:07:51 浏览: 60
c代码-计算s=1+3+5+7...+99
5星 · 资源好评率100%
要编写一个高效的程序来计算序列 \( s = 1 + (1+2) + (1+2+3) + \ldots + (1+2+\ldots+n) \),这是一个等差数列求和的问题。对于等差数列,其和可以通过公式 \( S_n = \frac{n(n+1)(2n+1)}{6} \) 来计算,其中 \( n \) 是项数,\( S_n \) 是前 \( n \) 个自然数之和。
下面是使用 C++ 编写的代码:
```cpp
#include <iostream>
// 函数来计算前n个自然数之和
int sumOfNNumbers(int n) {
return n * (n + 1) * (2 * n + 1) / 6;
}
int main() {
int n;
std::cout << "Enter the value of n: ";
std::cin >> n;
// 计算并输出结果
int s = sumOfNNumbers(n);
std::cout << "The sum is: " << s << std::endl;
return 0;
}
```
阅读全文