用python递归求1+2+……n之和
时间: 2023-10-24 10:05:39 浏览: 160
以下是Python递归求1到n之和的代码:
```python
def sum_n(n):
if n == 0:
return 0
else:
return n + sum_n(n-1)
# 调用函数
print(sum_n(10)) # 输出55,即1+2+3+...+10=55
```
在这个代码中,我们定义了一个名为`sum_n`的函数,它接受一个参数`n`,表示要求的1到n之和。当n等于0时,递归结束,返回0。当n不等于0时,递归调用`sum_n(n-1)`,并将结果与n相加,返回总和。
相关问题
用递归python编写1+(1+3)+(1+3+5)+……(1+3+5+……+n)和的程序
可以使用递归函数来实现这个求和过程,以下是一个Python程序的示例代码:
```python
def odd_sum(n):
if n == 1:
return 1
else:
# 递归调用本函数,计算前n-2个奇数和
return odd_sum(n-2) + sum(range(1, n+1, 2))
n = int(input("请输入一个正整数n:"))
sum = 0
for i in range(1, n+1, 2):
# 每次循环计算从1到i的奇数和,并将当前的奇数和加入总和中
sum += odd_sum(i)
print("1+(1+3)+(1+3+5)+……+(1+3+5+……+n)的和为:", sum)
```
程序首先定义一个递归函数`odd_sum`,用于计算从1到n的奇数和。在该函数中,如果n等于1,则返回1;否则递归调用本函数计算前n-2个奇数和,并将这个结果加上从1到n的奇数和返回。
程序主函数中使用循环计算从1到n的奇数和,并将每次循环的结果累加到总和中。在每次循环中,也使用递归函数`odd_sum`计算从1到当前奇数的奇数和,并将这个结果加入总和中。最后输出计算结果。
用递归的方法求1+2+……N的值。1+2+3+……+N
递归是一种函数调用自身的技术。用递归的方法求1到N的和,可以通过以下代码实现:
```python
def sum_recursive(n):
if n <= 1:
return 1
else:
return n + sum_recursive(n-1)
N = int(input("请输入一个正整数N:"))
result = sum_recursive(N)
print("1到{}的和为:{}".format(N, result))
```
以上代码定义了一个名为`sum_recursive`的函数,该函数接受一个正整数作为参数n。如果n小于等于1,则返回1作为结果。否则,函数返回n加上调用自身并传入n-1的结果。
请注意,递归的最大深度与编译器或解释器的最大栈深度有关,如果递归层数过多,可能会导致栈溢出的错误。为了避免这种情况,你可以使用`sys.setrecursionlimit()`函数来修改最大递归深度,如下:
```python
import sys
sys.setrecursionlimit(1000) # 修改最大递归深度为1000
```
阅读全文