用递归python编写1+(1+3)+(1+3+5)+……(1+3+5+……+n)和的程序
时间: 2023-08-05 18:02:09 浏览: 175
可以使用递归函数来实现这个求和过程,以下是一个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到当前奇数的奇数和,并将这个结果加入总和中。最后输出计算结果。
相关问题
python求1+1/2+1/3+……1/100的结果
使用递归算法,可以编写如下 Python 代码来计算 1 + 1/2 + 1/3 + ... + 1/n 的结果:
```
def sum_recursive(n):
if n == 1:
return 1
else:
return 1/n + sum_recursive(n-1)
print(sum_recursive(100))
```
运行上述代码,可以得到 1 + 1/2 + 1/3 + ... + 1/100 的结果为 5.187377517639621。
编写一个递归函数,计算1+1/2+1/3+……+1/n
以下是 Python 代码实现:
```python
def sum_recursion(n):
if n == 1:
return 1
else:
return 1/n + sum_recursion(n-1)
n = 5
print(sum_recursion(n)) # 输出:2.283333333333333
```
这个递归函数的思路是:先判断输入的参数n是否等于1,如果是,则返回1;如果不是,则递归调用sum_recursion(n-1),并将结果加上1/n返回。
例如,当n=5时,函数先计算1/5,然后递归调用sum_recursion(4),计算1/4,以此类推,直到n=1时,返回1。最后将所有结果相加,即得到1+1/2+1/3+1/4+1/5=2.283333333333333。