Untitled
unknown
csharp
7 months ago
1.3 kB
7
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