自定义递归函数,求1+2+3+.....+n
时间: 2023-09-30 13:02:06 浏览: 48
好的,我可以为您写一个递归函数来求解1+2+3+...+n。代码如下:
```python
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
```
这个函数接受一个正整数n作为参数,如果n为1,则直接返回1,否则返回n加上n-1到1的所有整数的和。可以通过递归调用这个函数来实现。
例如,如果您想求解1+2+3+...+10的和,可以这样调用函数:
```python
print(sum_recursive(10))
```
这将输出55,即1+2+3+...+10的和。
相关问题
7. 自定义递归函数,求1+2+3+……+n
以下是使用Python语言实现的自定义递归函数,用于求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和sum_recursive(n-1)的和,其中sum_recursive(n-1)表示1到n-1的和。
调用该函数可以得到1到n的和,例如:
```python
>>> sum_recursive(5)
15
>>> sum_recursive(10)
55
```
注意,递归函数容易导致栈溢出,因此在实际使用时需要进行优化或使用循环等其他方法。
使用C语言求自定义递归函数,求1+2+3+……+n
下面是使用C语言实现的自定义递归函数,求1+2+3+......+n的和:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) { // 边界条件
return 1;
} else {
return n + sum(n-1); // 递归调用
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1+2+3+...+%d=%d\n", n, sum(n));
return 0;
}
```
在上述代码中,`sum()`函数是递归函数,它的作用是求1+2+3+......+n的和。当`n=1`时,函数返回1;当`n>1`时,函数返回`n+sum(n-1)`,也就是n加上1到n-1的和。在`main()`函数中,首先从用户输入一个正整数n,然后调用`sum()`函数,将1到n的和输出到屏幕上。