Vòng lặp
Mô tả
Tại cảng Cái Lân, một băng chuyền có đúng n vị trí liên tiếp cần xếp n lô hàng khác nhau. Mỗi lô hàng chỉ chiếm một vị trí, và hai lô hàng không được trùng nhau. Trưởng ca muốn biết có bao nhiêu cách xếp khác nhau để lên kế hoạch đóng Container.
Quy luật xếp rất tự nhiên: vị trí đầu tiên có n lựa chọn, vị trí thứ hai chỉ còn n-1 lựa chọn (vì đã dùng mất một lô), vị trí thứ ba còn n-2 lựa chọn, cứ thế cho đến vị trí cuối cùng chỉ còn đúng 1 lựa chọn. Tổng số cách chính là giai thừa của n, ký hiệu n!.
Nhiệm vụ của bạn: viết một hàm đệ quy tính n! và trả về số cách xếp hàng.
Đầu vào
- Một số nguyên
n(0 ≤ n ≤ 12), là số lô hàng cần xếp (cũng là số vị trí trên băng chuyền).
Đầu ra
- Trả về một số nguyên là giá trị
n!(số cách xếpnlô hàng lênnvị trí).
Ràng buộc
- 0 ≤ n ≤ 12.
- 0! = 1 (khi không có hàng nào, ta coi như có đúng 1 cách "không xếp gì").
- Kết quả tối đa là 12! = 479001600, nằm an toàn trong phạm vi số nguyên 32-bit có dấu.
Ví dụ
Ví dụ 1:
- Đầu vào:
n = 4 - Đầu ra:
24 - Giải thích: Có 4 lô hàng A, B, C, D và 4 vị trí. Vị trí 1 có 4 lựa chọn, vị trí 2 có 3 lựa chọn, vị trí 3 có 2 lựa chọn, vị trí 4 có 1 lựa chọn. Tổng: 4 × 3 × 2 × 1 = 24 cách.
Ví dụ 2:
- Đầu vào:
n = 0 - Đầu ra:
1 - Giải thích: Không có lô hàng nào và không có vị trí nào. Theo quy ước, 0! = 1 — tồn tại đúng một cách "không làm gì".