编写递归函数,求1+2+3+……+n的值
时间: 2023-07-02 18:19:05 浏览: 140
可以使用递归函数来解决这个问题,递归函数的思想是将一个大问题拆分成若干个小问题,直到问题变得足够小,然后再逐步解决这些小问题,最终得到大问题的解。
下面是求1+2+3+……+n的递归函数:
```python
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
```
在这个递归函数中,我们首先判断n是否等于1,如果是,则直接返回1,否则,我们将问题拆分成n和n-1的和,然后递归调用函数sum_recursive(n-1),直到n等于1为止,然后将所有的结果相加,最终得到1+2+3+……+n的值。
可以使用以下代码来测试这个递归函数:
```python
n = 10
print("1+2+3+...+{} = {}".format(n, sum_recursive(n)))
```
输出结果为:
```
1+2+3+...+10 = 55
```
相关问题
输入偶数n(n<1000),编写递归函数计算2+4+6+8+……+n
当你需要编写一个递归函数来计算从2到n的所有偶数之和,可以使用这样的思路。首先确定基本情况,当n等于2时,直接返回2作为结果;然后对于大于2的偶数n,递归地计算前一项偶数加上n的和。
下面是一个简单的C语言示例:
```c
#include <stdio.h>
// 递归函数计算2到n之间所有偶数的和
int sum_of_even(int n) {
// 基本情况:当n等于2时,返回2
if (n == 2)
return 2;
// 递归情况:否则,返回前一项偶数加当前n的和
else
return sum_of_even(n - 2) + n;
}
int main() {
int n;
printf("请输入一个小于1000的偶数:");
scanf("%d", &n);
// 确保输入的是偶数并且在范围内
if (n % 2 != 0 || n >= 1000) {
printf("错误:输入应为一个小于1000的偶数。\n");
} else {
int result = sum_of_even(n);
printf("2到%d之间所有偶数的和是:%d\n", n, result);
}
return 0;
}
```
编写递归函数,求1+2+3+……+n的值c语言代码
以下是求1+2+3+……+n的递归函数的C语言代码:
```
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
```
可以通过调用`sum(n)`函数来计算1+2+3+……+n的值。
阅读全文