【发布时间】:2010-12-21 18:06:19
【问题描述】:
我怎样才能将这两个函数组合成一个递归函数来得到这个结果:
factorial(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
这是我的阶乘函数的当前代码:
def factorial(n):
if n < 1: # base case
return 1
else:
return n * factorial(n - 1) # recursive call
def fact(n):
for i in range(1, n+1 ):
print "%2d! = %d" % (i, factorial(i))
这段代码产生的输出如下:
fact(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
如您所见,这两个函数的执行给了我正确的答案,但我只是想将这两个函数简化为一个递归函数。
【问题讨论】:
-
我没有任何理由将两者合二为一。
-
嗯。这是作业吗?到目前为止,您尝试过什么?
-
不要。它看起来很好。将它们结合起来只会让事情变得更加困难。
-
@FrustratedWithFormsDesigner:去年的考试……哈哈……我希望我能带你们一起为我写我的考试,但这是不可能的:P
-
提问者可能在问题设置后已经毕业。无论如何,我希望希望他们实现 factorial recursive 的老师告诉他们,递归解决方案的效率太糟糕了,绝对不应该被允许。 :)
标签: python recursion factorial