Đệ 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#
-
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ênnumber
được gán giá trị 5. HàmFactorial
được gọi với đối sốnumber
, và kết quả được in ra.
- Khối
-
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ếun
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ếun
không bằng 0, hàm trả vền
nhân với kết quả củaFactorial(n - 1)
.
- Điều Kiện Cơ Sở:
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:
Factorial(5)
trả về5 * Factorial(4)
Factorial(4)
trả về4 * Factorial(3)
Factorial(3)
trả về3 * Factorial(2)
Factorial(2)
trả về2 * Factorial(1)
Factorial(1)
trả về1 * Factorial(0)
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