Viết hàm đệ quy tính n giải thừa trong python

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 = 5
Số 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= 4
0 != 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))
Next Post Previous Post
No Comment
Add Comment
comment url