如何将这两个函数组合成一个递归函数才能得到这样的结果:
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
正如您所看到的,这两个函数的执行给出了正确的答案,但我只是想将这两个函数简化为一个递归函数。
发布于 2010-12-22 02:13:08
我们可以将这两个函数组合成一个递归函数:
def factorial(n):
if n < 1: # base case
return 1
else:
returnNumber = n * factorial(n - 1) # recursive call
print(str(n) + '! = ' + str(returnNumber))
return returnNumber
发布于 2014-05-07 01:52:30
两行代码:
def fac(n):
return 1 if (n < 1) else n * fac(n-1)
测试它:
print fac(4)
结果:
24
发布于 2010-12-22 02:12:56
def factorial(n):
result = 1 if n <= 1 else n * factorial(n - 1)
print '%d! = %d' % (n, result)
return result
https://stackoverflow.com/questions/4502429
复制相似问题