用递归函数求2+4+……+100之和
时间: 2023-04-28 07:02:59 浏览: 84
可以使用递归函数来求2+4+……+100之和。具体实现如下:
1. 定义递归函数sum(n),表示求2+4+……+n之和。
2. 如果n小于2,则返回0。
3. 否则,递归调用sum(n-2),求2+4+……+(n-2)之和,然后加上n,即可得到2+4+……+n之和。
4. 最终返回结果。
代码如下:
def sum(n):
if n < 2:
return 0
else:
return sum(n-2) + n
print(sum(100)) # 输出2550
相关问题
用递归函数求1+2+3+……+n的和,n为正整数
以下是Python代码实现:
```python
def sum_n(n):
if n == 1:
return 1
else:
return n + sum_n(n-1)
n = int(input("请输入一个正整数n:"))
print("1到", n, "的和为:", sum_n(n))
```
思路解析:
递归函数的思路是将问题不断分解成规模更小的子问题,直到问题规模足够小可以直接求解。在本题中,我们将1到n的和分解成n和1到n-1的和的和。具体实现时,当n为1时,直接返回1;否则,返回n加上1到n-1的和的和,也就是n加上sum_n(n-1)。
例如,当n为5时,sum_n(5)的计算过程如下:
sum_n(5) = 5 + sum_n(4)
= 5 + 4 + sum_n(3)
= 5 + 4 + 3 + sum_n(2)
= 5 + 4 + 3 + 2 + sum_n(1)
= 5 + 4 + 3 + 2 + 1
= 15
最终,sum_n(5)的结果为15,也就是1到5的和。
分别使用 for 循环和递归函数求 1+2+3+……+n的值,n的值从键盘输入。
好的,我来回答你的问题。
使用 for 循环求 1+2+3+……+n的值的代码如下:
```python
n = int(input("请输入一个正整数 n:"))
sum = 0
for i in range(1, n+1):
sum += i
print("1+2+3+...+n 的值为:", sum)
```
使用递归函数求 1+2+3+……+n的值的代码如下:
```python
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
n = int(input("请输入一个正整数 n:"))
sum = sum_recursive(n)
print("1+2+3+...+n 的值为:", sum)
```
希望能够帮到你!