Tạo hàm đệ qui để tính giai thừa trong C#



Bài tập C#: Tạo hàm đệ qui để tính giai thừa

Viết chương trình C# để tạo một hàm tự định nghĩa có sử dụng phương pháp đệ qui để tính giai thừa của một số.

Đây là bài tập C# đơn giản minh họa giúp bạn các bước để khai báo, định nghĩa và gọi hàm tự định nghĩa trong C#.

Chương trình C#

Dưới đây là chương trình C# minh họa lời giải cho bài tập tạo hàm đệ qui để tính giai thừa của một số trong C#:

using System;namespace VietJackCsharp
{
    class TestCsharp
    {
        static void Main()
        {
            decimal f;
            Console.Write("\nTao ham de qui de tinh giai thua trong C#:\n");
            Console.Write("-------------------------------------------\n");
            Console.Write("Nhap mot so: ");
            int num = Convert.ToInt32(Console.ReadLine());
            f = TinhGiaiThua(num);
            Console.WriteLine("Giai thua cua {0}! la {1}", num, f);            Console.ReadKey();
        }        //tao mot ham tu dinh nghia de tinh giai thua
        //ham nay la ham de qui va nhan mot so nguyen lam tham so
        static decimal TinhGiaiThua(int n1)
        {  
            if (n1 == 0)
            {
                return 1;
            }
            // Goi ham de qui: goi toi chinh ham nay 
            else
            {
                return n1 * TinhGiaiThua(n1 - 1);
            }
        }    
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Tạo hàm đệ qui để tính giai thừa trong C#
bai-tap-ham-trong-csharp.jsp