Hướng dẫn algorithm for factorial of a number in python - thuật toán tính giai thừa của một số trong python

Trong bài viết này, bạn sẽ học cách tìm thấy giai thừa của một số và hiển thị nó.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Python sau:

  • Python nếu ... tuyên bố khác
  • Python cho vòng lặp
  • Đệ quy Python

Nấp của một số là sản phẩm của tất cả các số nguyên từ 1 đến số đó.

Ví dụ, giai thừa của 6 là 1*2*3*4*5*6 = 720. Nèn không được xác định cho các số âm và giai thừa của số 0 là một, 0! = 1.

Đơn vị của một số sử dụng vòng lặp

# Python program to find the factorial of a number provided by the user.

# change the value for a different result
num = 7

# To take input from the user
#num = int(input("Enter a number: "))

factorial = 1

# check if the number is negative, positive or zero
if num < 0:
   print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("The factorial of",num,"is",factorial)

Đầu ra

The factorial of 7 is 5040

Lưu ý: Để kiểm tra chương trình cho một số khác, thay đổi giá trị của num. To test the program for a different number, change the value of num.

Ở đây, số lượng mà giai thừa sẽ được tìm thấy được lưu trữ trong num và chúng tôi kiểm tra xem số đó là âm, bằng không hoặc dương bằng câu lệnh

The factorial of 7 is 5040
0. Nếu số là dương, chúng tôi sử dụng hàm
The factorial of 7 is 5040
1 và hàm
The factorial of 7 is 5040
2 để tính toán giai thừa.

Lặp đi lặp lại Factorial*i (giá trị trả về)
i = 11 * 1 = 1
i = 21 * 2 = 2
i = 32 * 3 = 6
i = 46 * 4 = 24
i = 524 * 5 = 120
i = 6120 * 6 = 720
i = 7720 * 7 = 5040

Đơn vị của một số sử dụng đệ quy

# Python program to find the factorial of a number provided by the user
# using recursion

def factorial(x):
    """This is a recursive function
    to find the factorial of an integer"""

    if x == 1:
        return 1
    else:
        # recursive call to the function
        return (x * factorial(x-1))


# change the value for a different result
num = 7

# to take input from the user
# num = int(input("Enter a number: "))

# call the factorial function
result = factorial(num)
print("The factorial of", num, "is", result)

Trong ví dụ trên,

The factorial of 7 is 5040
3 là một hàm đệ quy tự gọi. Ở đây, chức năng sẽ tự gọi mình bằng cách giảm giá trị của x.

Để tìm hiểu về hoạt động của đệ quy, hãy truy cập đệ quy Python.

Trong hướng dẫn này, chúng tôi sẽ học cách tìm ra giai thừa của một số và hiển thị nó. Lao động của một số không âm là sản phẩm của tất cả các số nguyên từ 1 đến số đó. Nấp của một số âm không được xác định và giai thừa của 0 luôn luôn là 1.

Ví dụ: giai thừa 7 là: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040

Công thức

Hướng dẫn algorithm for factorial of a number in python - thuật toán tính giai thừa của một số trong python

Chương trình nên lấy đầu vào như sau và trả về giai thừa của số đó.

Đầu vào- Nhập số: 5- Enter number: 5

Đầu ra- Factorial: 120- Factorial: 120

Đầu vào- Nhập số: 4- Enter number: 4

Đầu ra- Factorial: 24- Factorial: 24

Có ba cách tiếp cận khác nhau để thực hiện nhiệm vụ này trong Python:

  1. Sử dụng hàm đệ quy
  2. Sử dụng các câu lệnh và vòng lặp có điều kiện
  3. Sử dụng hàm Factorial () tích hợp

Chúng ta hãy xem xét các phương pháp này riêng lẻ,

Chương trình 1: Sử dụng đệ quy

Như đã thảo luận trước đó trong hướng dẫn này, đệ quy là một quá trình trong đó chức năng tự gọi trực tiếp hoặc gián tiếp trong một chương trình. Chúng tôi sẽ xác định một chức năng đệ quy để tìm giai thừa của một số được đưa ra bởi người dùng. Thực hiện theo thuật toán để hiểu quá trình làm việc tốt hơn.

Thuật toán

Bước 1 - Xác định hàm Factorial () để tính toán giai thừa - Define function factorial() to calculate factorial

Bước 2 - Kiểm tra xem số đã nhập là 1 hoặc 0, nếu đúng trả về số - Check if the entered number is 1 or 0, if true return the number

Bước 3 - Nếu sai, hãy gọi chức năng đệ quy để tính toán số lượng của số trừ 1- If false, call the function recursively to calculate factorial of the number minus 1

Bước 4 - Trả về giá trị của số nhân với số giai thừa của số trừ 1 - Return the value of the number multiplied by the factorial of the number minus 1

Bước 5 - In kết quả - Print the result

Chương trình Python 1

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nói trên.

def factorial(n):
    if (n==1 or n==0):
        return 1 
    else:
        return n * factorial(n - 1)
 
num = int(input("Enter number: "))
x=factorial(num)
print("Factorial of",num,"is",x)


Nhập số: 5 giai thừa 5 là 120
Factorial of 5 is 120

Chương trình 2: Sử dụng các câu lệnh và vòng lặp có điều kiện

Trong chương trình này, chúng tôi sẽ sử dụng các câu lệnh có điều kiện như nếu, Elif và nếu không và chúng tôi sẽ sử dụng một câu lệnh lặp. Các tuyên bố có điều kiện trong Python thực hiện các nhiệm vụ cụ thể tùy thuộc vào việc điều kiện đánh giá là đúng hay sai. Trong khi các vòng lặp được sử dụng để thực hiện một tuyên bố nhiều lần. Nhìn vào thuật toán được đề cập dưới đây để hiểu cách chúng tôi sẽ sử dụng các tính năng này để tìm giai thừa.

Thuật toán

Bước 1 - Xác định hàm Factorial () để tính toán giai thừa Take input from the user

Bước 2 - Kiểm tra xem số đã nhập là 1 hoặc 0, nếu đúng trả về số- Declare a variable factorial and initialise it to 1

Bước 3 - Nếu sai, hãy gọi chức năng đệ quy để tính toán số lượng của số trừ 1- Check if the number is positive or negative

Bước 4 - Trả về giá trị của số nhân với số giai thừa của số trừ 1 - If negative, print "Factorial doest not exist"

Bước 5 - In kết quả- For positive numbers, if the number is 0 print factorial as 1

Chương trình Python 1 - Else run a loop from 1 to the number and multiply each iteration with the value of factorial

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nói trên. - Print the result

Nhập số: 5 giai thừa 5 là 120

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nói trên.

num = int(input("Enter number: "))
factorial = 1
if num < 0:
   print("factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("The factorial of",num,"is",factorial)


Nhập số: 5 giai thừa 5 là 120
The factorial of 5 is 120

Chương trình 2: Sử dụng các câu lệnh và vòng lặp có điều kiện

Trong chương trình này, chúng tôi sẽ sử dụng các câu lệnh có điều kiện như nếu, Elif và nếu không và chúng tôi sẽ sử dụng một câu lệnh lặp. Các tuyên bố có điều kiện trong Python thực hiện các nhiệm vụ cụ thể tùy thuộc vào việc điều kiện đánh giá là đúng hay sai. Trong khi các vòng lặp được sử dụng để thực hiện một tuyên bố nhiều lần. Nhìn vào thuật toán được đề cập dưới đây để hiểu cách chúng tôi sẽ sử dụng các tính năng này để tìm giai thừa.factorial() is used to find the factorial of any number.

Thuật toán

Bước 1 - Xác định hàm Factorial () để tính toán giai thừa- Import math class

Bước 2 - Kiểm tra xem số đã nhập là 1 hoặc 0, nếu đúng trả về số Define a function that returns factorial

Bước 3 - Nếu sai, hãy gọi chức năng đệ quy để tính toán số lượng của số trừ 1 - Call math.factorial()

Bước 4 - Trả về giá trị của số nhân với số giai thừa của số trừ 1- Print result returned by the function

Bước 5 - In kết quả

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nói trên.

import math
def factorial(n):
    return(math.factorial(n))
 
num = int(input("Enter number: "))
print("Factorial of", num, "is",factorial(num))


Nhập số: 5 giai thừa 5 là 120
Factorial of 10 is 3628800

Có một phương pháp giai thừa trong Python?

Không nhiều người biết, nhưng Python cung cấp một chức năng trực tiếp có thể tính toán giai thừa của một số mà không viết toàn bộ mã để tính toán.Phương pháp này được định nghĩa trong mô -đun Math Math của Python.python offers a direct function that can compute the factorial of a number without writing the whole code for computing factorial. This method is defined in “math” module of python.

Cú pháp cho giai thừa trong Python là gì?

Hàm Factorial () trả về giai thừa của số mong muốn.Cú pháp: Math.Factorial (x) Tham số: X: Đây là một biểu thức số.Trả lại: Factorial của số mong muốn.math. factorial(x) Parameter: x: This is a numeric expression. Returns: factorial of desired number.

Sê -ri giai thừa trong Python là gì?

Đơn vị của một số nguyên không âm, là phép nhân của tất cả các số nguyên nhỏ hơn hoặc bằng n.Ví dụ: giai thừa 6 là 6*5*4*3*2*1 là 720.multiplication of all integers smaller than or equal to n. For example factorial of 6 is 6*5*4*3*2*1 which is 720.

Công thức để tìm thấy giai thừa của một số là gì?

Trong các thuật ngữ toán học hơn, giai thừa của một số (n!) Bằng n (n-1).Ví dụ: nếu bạn muốn tính toán giai thừa cho bốn, bạn sẽ viết: 4!= 4 x 3 x 2 x 1 = 24.n(n-1). For example, if you want to calculate the factorial for four, you would write: 4! = 4 x 3 x 2 x 1 = 24.