题目
计算n的阶乘
解法一
使用递归解决:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
class Factorial(object):
def factorial(self, n):
if n < 0:
return False
if n == 0 or n == 1:
return 1
if n > 1:
return n * self.factorial(n - 1)
if __name__ == '__main__':
n = 5
ft = Factorial()
result = ft.factorial(n)
print result
解法二
使用reduce和 lambda解决
#!/usr/bin/python
# -*- coding:UTF-8 -*-
class Factorial(object):
def factorial(self, n):
return reduce(lambda x, y: x * y, range(1, n + 1))
if __name__ == '__main__':
n = 3
ft = Factorial()
result = ft.factorial(n)
print result