【发布时间】:2015-04-16 00:34:18
【问题描述】:
编写一个名为
odd_factorial(x)的递归Python 函数,如果x是奇数,则输入x(x >= 5) 计算3 × 5 × 7 × . . . × x;或3 × 5 × . . . × (x − 1)如果x是偶数。
我有递归,但我不太确定如何确保x >= 5 用于第一个循环:
def odd_factorial(x):
if x%2 == 1:
if x == 3:
return 3
else:
return x*odd_factorial(x-2)
else:
x -= 1
if x == 3:
return 3
else:
return x*odd_factorial(x-2)
【问题讨论】:
-
就我个人而言,我会通过拥有两个功能来保持简单。第一个是非递归入口点,它将偶数转换为
x-1并检查输入是否为>=5。然后它调用第二个函数,即递归函数,它是您已有函数的更简单、更简洁的版本。 -
你确定条件 x>=5 吗?
-
如果
x<5,函数应该返回什么?退出条件是什么? -
记得采纳对你最有帮助的答案!
标签: python function recursion factorial