Hướng dẫn hàm fact trong python



Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím.

Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.

Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320.

Có 2 cách để viết chương trình tính giai thừa trong python:

  • Tính giai thừa không sử dụng hàm đệ quy
  • Tính giai thừ có sử dụng hàm đệ quy


1. Tính giai thừa không sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong python không sử dụng phương pháp đệ quy:

Code mẫu: tính giai thừa không sử dụng hàm đệ quy

"""
 * tinh giai thua
 *
 * @author viettuts.vn
 * @param n: so nguyen duong
 * @return giai thua cua so n
"""
def tinhgiaithua(n):
    giai_thua = 1;
    if (n == 0 or n == 1):
        return giai_thua;
    else:
        for i in range(2, n + 1):
            giai_thua = giai_thua * i;
        return giai_thua;

n = int(input("Nhập số nguyên dương n = "));
print("Giai thừa của", n, "là", tinhgiaithua(n));

Kết quả:

Nhập số nguyên dương n = 10
Giai thừa của 10 là 3628800

2. Tính giai thừa có sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong python có sử dụng phương pháp đệ quy:

Code mẫu: tính giai thừa sử dụng hàm đệ quy

n = int(input("Nhập số cần tính giai thừa: "))

def giaiThua(n):
    if n == 0:
        return 1
    return n * giaiThua(n - 1)

print (giaiThua(n))

Kết quả:

Nhập số cần tính giai thừa: 8
40320




Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím.

Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.

Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320.

Có 2 cách để viết chương trình tính giai thừa trong python:

  • Tính giai thừa không sử dụng hàm đệ quy
  • Tính giai thừ có sử dụng hàm đệ quy


1. Tính giai thừa không sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong python không sử dụng phương pháp đệ quy:

Code mẫu: tính giai thừa không sử dụng hàm đệ quy

"""
 * tinh giai thua
 *
 * @author viettuts.vn
 * @param n: so nguyen duong
 * @return giai thua cua so n
"""
def tinhgiaithua(n):
    giai_thua = 1;
    if (n == 0 or n == 1):
        return giai_thua;
    else:
        for i in range(2, n + 1):
            giai_thua = giai_thua * i;
        return giai_thua;

n = int(input("Nhập số nguyên dương n = "));
print("Giai thừa của", n, "là", tinhgiaithua(n));

Kết quả:

Nhập số nguyên dương n = 10
Giai thừa của 10 là 3628800


2. Tính giai thừa có sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong python có sử dụng phương pháp đệ quy:

Code mẫu: tính giai thừa sử dụng hàm đệ quy

n = int(input("Nhập số cần tính giai thừa: "))

def giaiThua(n):
    if n == 0:
        return 1
    return n * giaiThua(n - 1)

print (giaiThua(n))

Kết quả:

Nhập số cần tính giai thừa: 8
40320



Viết chương trình Python để Tìm giai thừa của một số bằng Vòng lặp For, Vòng lặp Trong khi, Hàm và Đệ quy. Giai thừa của một số là tích của tất cả các số nhỏ hơn hoặc bằng số đó & lớn hơn 0. n! = n * (n-1) * (n -2) * ……. * 1.

  • Chương trình Python để tìm Giai thừa của một số bằng cách sử dụng hàm Toán học
  • Chương trình Python để tìm Giai thừa của một số bằng For Loop
  • Chương trình thừa kế Python sử dụng While Loop
  • Sử dụng các chức năng
  • Sử dụng đệ quy

Giai thừa được biểu thị bằng dấu chấm than (!) Và Trong chương trình Python này, chúng tôi đang sử dụng hàm giai thừa mô-đun toán học được tích hợp sẵn trên số.

import math 

a = int(input(" Please enter any Integer : "))

ft = math.factorial(a)
print("The Result of %d  = %d" %(a, ft))
Please enter any Integer : 5
The Result of 4 = 120

Chương trình Python để tìm Giai thừa của một số bằng For Loop

Mã này cho phép người dùng nhập bất kỳ số nguyên nào. Sử dụng giá trị đã cho này, chương trình Python này tìm Giai thừa của một số bằng For Loop.

number = int(input(" Please enter any Number : "))
fact = 1

for i in range(1, number + 1):
    fact = fact * i
print("The factorial of %d  = %d" %(number, fact))

Người dùng đã nhập số nguyên trong ví dụ chương trình trên là 4. Vui lòng tham khảo các hàm toán học, giai thừa, Vòng lặp For, Vòng lặp Trong khi và Các hàm trong Python.

Giai thừa Python của một chương trình số Lặp lại lần đầu tiên
i = 1, Fact = 1 và number = 5

Sự thật = Sự thật * i;
Sự thật = 1 * 1 = 1

Lặp lại lần thứ hai
i = 2, Fact = 1 và Number = 5
Sự thật = 1 * 2 = 2

Lặp lại lần thứ ba
i = 3, Fact = 2 và Number = 5
Sự thật = 2 * 3 = 6

Lặp lại lần thứ tư
i = 4, Fact = 6 và Number = 5
Sự thật = 6 * 4 = 24

Tiếp theo, tôi trở thành 5. Vì vậy, vòng lặp For đã chấm dứt.

Chương trình thừa kế Python sử dụng While Loop

Trong ví dụ Python này, chúng tôi chỉ thay thế vòng lặp for bằng Vòng lặp While để tìm giai thừa của một số.

value = int(input(" Please enter any Value : "))
fact = 1
i = 1

while(i <= value):
    fact = fact * i
    i = i + 1

print("The Result of %d  = %d" %(value, fact))
Please enter any Value : 8
The Result of 8 = 40320

đầu ra 2

Please enter any Value : 9
The Result of 9 = 362880

Sử dụng các chức năng

Mã này giống như ví dụ đầu tiên. Tuy nhiên, chúng tôi đã tách logic chương trình giai thừa bằng cách sử dụng Hàm python.

def calculating(num):
    faco = 1

    for i in range(1, num + 1):
        faco = faco * i

    return faco


val = int(input(" Please enter any Value : "))

faco = calculating(val)
print("The Result of %d  = %d" %(val, faco))
Please enter any Value : 5
The Result of 5 = 120

đầu ra 2

Please enter any Value : 6
The Result of 7 = 720

Sử dụng đệ quy

Mã này chuyển giá trị người dùng đã nhập vào Hàm. Trong hàm đệ quy này, chương trình Python này tìm giai thừa của một số bằng cách sử dụng hàm đệ quy hoặc đệ quy.

def factFind(num):
    if((num == 0) or (num == 1)):
        return 1
    else:
        return num * factFind(num - 1)


num = int(input(" Please enter any Num : "))

fact = factFind(num)
print("The fact of %d  = %d" %(num, fact))
Please enter any Num : 6
The fact of 6 = 720

đầu ra 2

Please enter any Num : 4
The fact of 4 = 24

Trong hàm do người dùng định nghĩa của chương trình này, If Else Statement kiểm tra xem số nguyên bằng 0 hay 1. Nếu điều kiện là TRUE, thì hàm trả về 1. Nếu điều kiện là False, hàm trả về giá trị Num * (Num – 1) đệ quy.

Giá trị do người dùng nhập = 6.

Fac = num * factFind (num -1);
= 6 * factFind (5)
= 6 * 5 * factFind (4)
có nghĩa là 6 * 5 * 4 * factFind (3)
= 6 * 5 * 4 * 3 * factFind (2)
= 6 * 5 * 4 * 3 * 2 * factFind (1)
Khuôn mặt = 6 * 5 * 4 * 3 * 2
= 720