C++用递归编写程序计算s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值。要求计算尽量高效。
时间: 2024-09-13 19:05:42 浏览: 45
VC-FFT (1)_FFT变换_visualc++_
在C++中,我们可以使用递归来高效地计算这个序列的求和,它是一个等差数列的求和,可以利用数学公式直接简化。但是,如果只是为了练习递归,下面是一个简单的递归函数示例:
```cpp
#include <iostream>
int sum(int n) {
if (n == 1) { // 基本情况:当n等于1时,直接返回1
return 1;
} else { // 递归情况:n大于1时,将当前n和前一项相加
return 1 + sum(n - 1);
}
}
int calculate_sum(int n) {
int result = sum(n); // 调用sum函数并保存结果
return result; // 返回最终的和
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
int total = calculate_sum(n);
std::cout << "1 到 " << n << " 的和是: " << total << std::endl;
return 0;
}
```
阅读全文