用python写一个自定义递归函数,求1到n的奇数和,偶数和
时间: 2024-05-08 08:18:15 浏览: 104
好的,没问题。下面是Python代码实现:
```python
def odd_even_sum(n):
if n == 0:
return 0, 0
else:
odd, even = odd_even_sum(n - 1)
if n % 2 == 1:
odd += n
else:
even += n
return odd, even
n = int(input("请输入 n:"))
odd_sum, even_sum = odd_even_sum(n)
print("1~{} 的奇数和为:{}".format(n, odd_sum))
print("1~{} 的偶数和为:{}".format(n, even_sum))
```
如果要求1到n的所有数的和,可以在递归函数中加几行代码实现。
相关问题
Python用自定义递归函数求1到n的奇数和,偶数和
Python中可以使用自定义递归函数来分别计算1到n的奇数和(odd_sum)和偶数和(even_sum)。递归是一种解决问题的方法,通过将大问题分解成更小的同类问题来解决。这里是一个简单的例子:
```python
def sum_odd_even(n):
# 基线条件:如果n为0或1,直接返回0,因为0既不是奇数也不是偶数
if n == 0 or n == 1:
return 0
# 如果n是奇数,则返回当前数加上前一个偶数之和
elif n % 2 == 1:
odd_sum = n + sum_even(n - 1)
return odd_sum
# 否则,n是偶数,返回当前数加上前一个奇数之和
else:
even_sum = n + sum_odd_even(n - 2)
return even_sum
# 计算1到n的奇数和和偶数和
def main(n):
total_sum = sum_odd_even(n) + sum_even(n)
odd_sum, even_sum = sum_odd_even(n), sum_even(n)
print(f"1到{n}的总和是 {total_sum}")
print(f"奇数和是 {odd_sum}")
print(f"偶数和是 {even_sum}")
# 示例:求1到5的奇数和和偶数和
main(5)
```
这个程序会先计算1到n的所有数字中,奇数部分和偶数部分的和,然后将它们相加得到总的和。
用python自定义递归函数求1…n的奇数和、偶数和
没有问题,我可以回答你的问题。以下是 Python 代码:
# 递归求和奇数和与偶数和
def oddEvenSum(n):
if n == 0:
return 0
elif n % 2 == 0:
# 偶数和 = 当前偶数 + 前一个数字的奇数和
return n + oddEvenSum(n-1)
else:
# 奇数和 = 当前奇数 + 前一个数字的偶数和
return n + oddEvenSum(n-1)
n = 10 # 范围为1到n
# 输出奇数和与偶数和
print("1到{}的奇数和为:{}".format(n, oddEvenSum(n-1)))
print("1到{}的偶数和为:{}".format(n, oddEvenSum(n)))
阅读全文