C4-06 · Giai thừa sau khi bỏ số âm
Xem dạng PDF
Gửi bài giải
Điểm:
1,00
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
Python
Đề
Người dùng gõ nhầm vài số âm trước khi gõ số đúng. Chương trình đọc lần lượt từng dòng, mỗi dòng một số nguyên; bỏ qua mọi số âm cho đến khi gặp số không âm đầu tiên n, rồi in n! = 1 · 2 · … · n (quy ước 0! = 1).
Các dòng sau n (nếu có) không cần đọc.
Dữ liệu vào
- Không, một hoặc nhiều dòng đầu, mỗi dòng một số nguyên âm.
- Tiếp theo là dòng chứa số nguyên không âm n.
- Sau dòng chứa n có thể còn vài dòng nữa (mỗi dòng một số nguyên bất kỳ); chương trình bỏ qua chúng.
Kết quả
Một dòng: giá trị n! (số nguyên, có thể rất lớn).
Ràng buộc
- Trước n có từ 0 đến 1000 dòng; mỗi số âm nằm trong đoạn [−10⁹; −1].
- 0 ≤ n ≤ 1000 (1000! có 2568 chữ số; số nguyên Python không bị tràn).
- Sau n có từ 0 đến 10 dòng, mỗi dòng một số nguyên trong đoạn [−10⁹; 10⁹].
Ví dụ
Dữ liệu vào:
-3
6
Kết quả:
720
Giải thích ví dụ
Dòng 1 là −3 (âm) → bỏ qua, đọc tiếp. Dòng 2 là 6 (không âm) → dừng đọc, n = 6. Kết quả 6! = 1 · 2 · 3 · 4 · 5 · 6 = 720.
Dạng đọc này là "lặp đến khi nhập hợp lệ" (mục 4.1.3): đọc một số, chừng nào số đó còn âm thì đọc số khác.
Ghi chú
- 0 là số không âm: nếu gặp 0 thì dừng và in 0! = 1. Viết điều kiện
x <= 0(bỏ qua cả 0) sẽ sai. - Tích phải khởi tạo bằng 1 (khởi tạo 0 thì tích luôn bằng 0), và nhân đủ từ 1 đến n (
range(1, n + 1)).
Nguồn trong sách: Bài C4-06, mục 4.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)
Đang tải...