Untitled

 avatar
unknown
csharp
16 days ago
1.3 kB
4
Indexable
using System;

public class BaiTap65
{
    static long TinhToHop(int n, int m)
    {
        // Điều kiện dừng
        if (m < 0 || m > n)
        {
            return 0; // Không hợp lệ
        }
        if (m == 0 || m == n)
        {
            return 1; // C(n,0) = 1, C(n,n) = 1
        }
        if (m == 1)
        {
            return n; // C(n,1) = n (tối ưu nhỏ)
        }
        // Công thức đệ quy
        return TinhToHop(n - 1, m - 1) + TinhToHop(n - 1, m);
    }

    public static void Main(string[] args)
    {
        Console.OutputEncoding = System.Text.Encoding.UTF8;
        Console.InputEncoding = System.Text.Encoding.UTF8;

        Console.WriteLine("Tính tổ hợp C(n, m) bằng đệ quy");

        int n, m;

        Console.Write("Nhập số nguyên n (n >= 0): ");
        while (!int.TryParse(Console.ReadLine(), out n) || n < 0)
        {
            Console.Write("n không hợp lệ. Nhập lại: ");
        }

        Console.Write($"Nhập số nguyên m (0 <= m <= {n}): ");
        while (!int.TryParse(Console.ReadLine(), out m) || m < 0 || m > n)
        {
            Console.Write($"m không hợp lệ. Nhập lại (0-{n}): ");
        }

        long ketQua = TinhToHop(n, m);

        Console.WriteLine($"Kết quả C({n}, {m}) = {ketQua}");
    }
}
Editor is loading...
Leave a Comment