Mô tả
Tại nhà máy linh kiện Bason, mỗi đợt sản xuất đều cho ra một lô mạch cảm biến nhỏ gọn. Kỹ sư Trâm phụ trách kiểm tra chất lượng, sau một ngày làm việc cô ghi nhận được n mạch đạt chuẩn hoàn toàn. Sáng hôm sau, bộ phận kiểm định yêu cầu cô gửi lên k mạch bất kỳ từ số đó để chạy bài kiểm tra chéo, thứ tự gửi không quan trọng vì máy đo sẽ tự động xáo trộn trước khi phân tích.
Trâm muốn biết có bao nhiêu cách chọn ra đúng k mạch cảm biến từ n mạch đạt chuẩn. Bạn hãy viết hàm trả về số cách chọn đó, chính là giá trị tổ hợp C(n, k).
Đầu vào
Hàm nhận hai tham số nguyên:
n(số mạch đạt chuẩn)k(số mạch cần chọn)
Dữ liệu vào được truyền trực tiếp qua tham số hàm.
Đầu ra
Trả về một số nguyên duy nhất là giá trị C(n, k). Nếu k < 0 hoặc k > n, kết quả là 0.
Ràng buộc
- 0 ≤ n ≤ 60
- 0 ≤ k ≤ n (nếu k nằm ngoài khoảng này thì kết quả là 0)
- Giá trị C(n, k) đảm bảo không vượt quá 2^53 − 1, do đó không cần dùng số lớn.
Ví dụ
Ví dụ 1:
Đầu vào: n = 5, k = 2
Giải thích: Từ 5 mạch đạt chuẩn, cần chọn 2 mạch. Liệt kê theo mã mạch {1,2,3,4,5}, các cặp thỏa mãn là {1,2}, {1,3}, {1,4}, {1,5}, {2,3}, {2,4}, {2,5}, {3,4}, {3,5}, {4,5}, tổng cộng 10 cách.
Đầu ra: 10
Ví dụ 2:
Đầu vào: n = 6, k = 3
Giải thích: Từ 6 mạch cần chọn 3, ta tính C(6,3) = 6!/(3!·3!) = 720/36 = 20.
Đầu ra: 20