Mô tả thử thách
Chúng tôi đã có một vài thử thách liên quan đến chuỗi Nhìn và Nói . Nhắc nhở nhanh:
- Trình tự bắt đầu bằng
1, - Các thuật ngữ tiếp theo của chuỗi này được tạo ra bằng cách liệt kê từng nhóm chữ số lặp lại trong thuật ngữ trước đó,
Vì vậy, một vài điều khoản đầu tiên là:
1 "one"
11 "one one" (we look at the previous term)
21 "two ones"
1211 "one two, one one"
111221 "one one, one two, two ones"
312211 "three ones, two twos, one one"
Bây giờ chúng ta hãy làm điều tương tự, nhưng sử dụng Chữ số La Mã thay thế. Chúng tôi bắt đầu với Ivà làm theo các quy tắc tương tự (chúng tôi áp dụng các quy tắc chữ số đếm để nhân vật thay thế, do chúng ta đọc IVXnhư one one, one five, one tenthay vì one four, one tenhoặc một số cách khác):
I "one"
II "one one"
III "two ones" = "II" + "I"
IIII "three ones" = "III" + "I"
IVI "four ones" = "IV" + "I"
IIIVII "one one, one five, one one"
IIIIIVIII "three ones, one five, two ones" = ("III" + "I") + ("I" + "V") + ("II" + "I")
Cho một số nguyên dương N, hoặc:
- Đầu ra các
Nchữ số đầu tiên của chuỗi này (bất kỳ dấu tách hợp lý nào cũng được, cũng như["I", "II", "III", ...] NThuật ngữ đầu ra của chuỗi này (nó có thể được lập chỉ mục 0).
Hãy nhớ làm cho mã của bạn càng ngắn càng tốt, vì đây là một thử thách chơi mã !
EDIT: Tôi tin rằng luôn có một cách biểu thị số nguyên / tiêu chuẩn ưa thích là số La Mã, (như 95-> XCVthay vì VC). Vài bộ chuyển đổi số La Mã tôi tìm thấy trực tuyến chứng thực quan điểm của tôi. Nếu nghi ngờ, hãy sử dụng một trình chuyển đổi trực tuyến , vì liệt kê tất cả các trường hợp cạnh có thể và quy tắc cụ thể viết chữ số La Mã không phải là điểm của thách thức này.
EDIT2: @PeterTaylor và @GregMartin chỉ ra rằng chỉ số ít hoặc tương đương để 5xuất hiện trong chuỗi, vì vậy bạn không cần phải lo lắng về sự nhập nhằng của chữ số La Mã (số 1- 8là I, II, III, IV, V, VI, VII, và VIII)
4/ IV/ IIII? Hoặc 95/ XCV/ VC? Có thể không phải lúc nào cũng có một cách duy nhất để biểu thị một số nguyên, nhưng tôi khá chắc chắn rằng luôn có một cách ưa thích (tiêu chuẩn) - sửa tôi nếu tôi sai.