×

Tính Giai Thừa Bằng Đệ Quy Trong C# Đơn Giản

Đệ quy là một kỹ thuật lập trình trong đó một hàm gọi lại chính nó để giải quyết một bài toán. Tính giai thừa là một ví dụ điển hình của việc sử dụng đệ quy. Giai thừa của một số nguyên dương n (ký hiệu là n!) được định nghĩa như sau:

  • 0! = 1 (điều kiện cơ sở)
  • n! = n * (n - 1)! (lời gọi đệ quy)

Dưới đây là cách triển khai hàm đệ quy để tính giai thừa trong C#:

Mã C# Tính Giai Thừa Bằng Đệ Quy

using System;

class Program
{
    static void Main()
    {
        int number = 5; // Ví dụ số nguyên để tính giai thừa
        int result = Factorial(number); // Gọi hàm đệ quy
        Console.WriteLine($"{number}! = {result}"); // In kết quả
    }

    // Hàm đệ quy để tính giai thừa
    static int Factorial(int n)
    {
        if (n == 0) // Điều kiện cơ sở
            return 1;
        else
            return n * Factorial(n - 1); // Lời gọi đệ quy
    }
}

Giải Thích Mã C#

  1. Phần Khởi Đầu:

    using System;
    
    class Program
    {
        static void Main()
        {
            int number = 5; // Ví dụ số nguyên để tính giai thừa
            int result = Factorial(number); // Gọi hàm đệ quy
            Console.WriteLine($"{number}! = {result}"); // In kết quả
        }
    }
    
    • Khối using System;: Thư viện cần thiết cho việc sử dụng các chức năng cơ bản của .NET.
    • Hàm Main: Điểm bắt đầu của chương trình. Trong hàm này, một số nguyên number được gán giá trị 5. Hàm Factorial được gọi với đối số number, và kết quả được in ra.
  2. Hàm Đệ Quy Factorial:

    static int Factorial(int n)
    {
        if (n == 0) // Điều kiện cơ sở
            return 1;
        else
            return n * Factorial(n - 1); // Lời gọi đệ quy
    }
    
    • Điều Kiện Cơ Sở: if (n == 0) return 1; - Nếu n bằng 0, hàm trả về 1, đây là điều kiện dừng để tránh đệ quy vô hạn.
    • Lời Gọi Đệ Quy: return n * Factorial(n - 1); - Nếu n không bằng 0, hàm trả về n nhân với kết quả của Factorial(n - 1).

Hoạt Động Của Đệ Quy

Khi Factorial(5) được gọi, chương trình thực hiện các bước sau:

  1. Factorial(5) trả về 5 * Factorial(4)
  2. Factorial(4) trả về 4 * Factorial(3)
  3. Factorial(3) trả về 3 * Factorial(2)
  4. Factorial(2) trả về 2 * Factorial(1)
  5. Factorial(1) trả về 1 * Factorial(0)
  6. Factorial(0) trả về 1 (điều kiện cơ sở)

Cuối cùng, các giá trị này được nhân lại theo thứ tự ngược lại để cho ra kết quả: 5 * 4 * 3 * 2 * 1 = 120.

Kết Luận

Đệ quy là một cách tiếp cận mạnh mẽ và thanh lịch để giải quyết các bài toán có tính chất lặp lại như tính giai thừa. Tuy nhiên, cần cẩn thận với điều kiện cơ sở để tránh lặp vô hạn và lỗi tràn ngăn xếp.

Comments