use*_*225 10 python recursion factorial
如何将这两个函数组合到一个递归函数中以获得此结果:
factorial(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
Run Code Online (Sandbox Code Playgroud)
这些是代码
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
Run Code Online (Sandbox Code Playgroud)
正如你看到这两个的执行给出了正确的答案,我只想把它变成一个递归函数.
pyt*_*Foo 28
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
Run Code Online (Sandbox Code Playgroud)
mar*_*nas 24
2行代码:
def fac(n):
return 1 if (n < 1) else n * fac(n-1)
Run Code Online (Sandbox Code Playgroud)
测试一下:
print fac(4)
Run Code Online (Sandbox Code Playgroud)
结果:
24
Run Code Online (Sandbox Code Playgroud)
小智 6
一个简短的:
def fac(n):
if n == 0:
return 1
else:
return n * fac(n-1)
print fac(0)
Run Code Online (Sandbox Code Playgroud)
def factorial(n):
result = 1 if n <= 1 else n * factorial(n - 1)
print '%d! = %d' % (n, result)
return result
Run Code Online (Sandbox Code Playgroud)