设计一个递归函数,计算给定整数列表中所有奇数的乘积。
时间: 2023-05-24 16:06:31 浏览: 60
以下是Python实现:
```python
def odd_product(nums):
# 如果列表为空,返回1(对于乘法,1是单位元)
if not nums:
return 1
# 如果列表的第一个数是偶数,递归调用函数去除该数
if nums[0] % 2 == 0:
return odd_product(nums[1:])
# 否则,返回当前数乘以剩余数的奇数乘积
else:
return nums[0] * odd_product(nums[1:])
```
使用示例:
```python
nums = [1, 2, 3, 4, 5]
print(odd_product(nums)) # 输出15(1*3*5)
```
解释:该函数使用了递归调用,如果列表为空,则返回1;如果列表的第一个数是偶数,则移除该数并递归调用函数,否则返回当前数乘以剩余数的奇数乘积。