Viết hàm đệ quy tính n giải thừa trong python
Giai thừa của 6 được ký hiệu là 6! = 1*2*3*4*5*6 = 720.
Cách 1
# Hàm đệ quy
def recursive_factorial(n):
if n == 1:
return n
else:
return n * recursive_factorial(n-1)
# Đầu vào
num = int(input("Nhập số nguyên n = "))
# kiểm tra đầu vào có hợp lệ hay không
if num < 0:
print("Đầu vào không hợp lệ! Vui lòng nhập số dương.")
elif num == 0:
print("Giai thừa của số 0 là 1")
else:
print("Giai thừa của số", num, "=", recursive_factorial(num))
Cách 2
def Recur_facto(n):
if (n == 0):
return 1
return n * Recur_facto(n-1)
num = int(input("Nhập số nguyên n= "))
print(Recur_facto(num))
Cách 3
Nhập số tự nhiên n = 5Số tự nhiên cần tính giải thừa n = 5
Số tự nhiên cần tính giải thừa n = 4
Số tự nhiên cần tính giải thừa n = 3
Số tự nhiên cần tính giải thừa n = 2
Số tự nhiên cần tính giải thừa n = 1
Giải thừa 2 * ( 1 ): 2
Giải thừa 3 * ( 2 ): 6
Giải thừa 4 * ( 3 ): 24
Giải thừa 5 * ( 4 ): 120
120
def fact(n):
print("Số tự nhiên cần tính giải thừa n = " + str(n))
if n == 1:
return 1
else:
res = n * fact(n-1)
print("Giải thừa ", n, " * (",n-1,"): ",res)
return res
num=int(input("Nhập số tự nhiên n = "))
print(fact(num))
Cách 4
Nhập số tự nhiên n= 40 != 1
1 != 1
2 != 2
3 != 6
4 != 24
def fact(n):
result = 1
for i in range(2,n+1):
result *= i
return result
n=int(input("Nhập số tự nhiên n= "))
for i in range(n+1):
print(i,"!=",fact(i))