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))