Lý lịch
Thử thách này được lấy cảm hứng từ trang web này , đã xuất bản sơ đồ sau:
Biểu đồ này cho chúng ta thấy biểu thức số La Mã dài nhất dưới 250 là biểu thức 188, yêu cầu 9 chữ số để thể hiện.
Thử thách
Các biểu tượng chuẩn được sử dụng để diễn tả Chữ số La Mã nhất là sau: { I
, V
, X
, L
, C
, D
, M
}, trong đó giá trị số của nhân vật là M
= 1000, D
= 500, C
= 100, L
= 50, X
= 10, V
= 5, I
= 1.
Trong thử thách này, mục tiêu của bạn là, được đưa ra một số nguyên dương n , tính toán số lượng biểu diễn Số La Mã hợp lệ có thể được tạo thông qua n nối các ký hiệu chuẩn.
Sau đó, chương trình của bạn phải xuất kết quả của tính toán này!
Đầu vào : Một số nguyên dương n .
Đầu ra : Số biểu thức chữ số La Mã hợp lệ có độ dài n .
Quy tắc biểu thức số La Mã
Chữ số La Mã ban đầu chỉ có ghép nối "phụ gia", nghĩa là các chữ số luôn được viết theo thứ tự giảm dần và tổng các giá trị của tất cả các chữ số là giá trị của số.
Sau này, ghép cặp trừ, việc sử dụng đặt một chữ số nhỏ hơn trước một số lớn hơn để trừ số nhỏ hơn từ số lớn hơn, trở nên phổ biến để rút ngắn các biểu thức Số La Mã. Các cặp trừ có thể được xâu chuỗi, như trong biểu thức không hợp lệ sau : IXL
.
Sau đây là các quy tắc hiện đại cho ghép cặp cộng và trừ.
- Chỉ có một I, X và C có thể được sử dụng làm chữ số hàng đầu trong một phần của cặp trừ.
- Tôi chỉ có thể được đặt trước V hoặc X trong một cặp trừ.
- X chỉ có thể được đặt trước L hoặc C trong một cặp trừ.
- C chỉ có thể được đặt trước D hoặc M trong một cặp trừ.
- Khác với các cặp trừ, các chữ số phải theo thứ tự giảm dần (có nghĩa là nếu bạn bỏ số đầu của mỗi cặp trừ, thì các chữ số sẽ theo thứ tự giảm dần).
- M, C và X không thể bằng hoặc vượt quá các mệnh giá nhỏ hơn.
- Mỗi D, L và V chỉ có thể xuất hiện một lần.
- Chỉ M có thể được lặp lại 4 lần trở lên.
Ghi chú thêm
Chúng tôi sẽ không sử dụng ký hiệu thanh ; thay vào đó, chúng tôi chỉ đơn giản sẽ thêm nhiều M s để thể hiện bất kỳ số nào.
Đây là những quy tắc duy nhất mà chúng tôi sẽ tuân theo cho các chữ số La Mã của chúng tôi. Điều đó có nghĩa là các biểu thức lẻ, chẳng hạn như
IVI
, cũng sẽ được coi là hợp lệ trong hệ thống của chúng tôi.Cũng nên nhớ rằng chúng ta không đếm số lượng các biểu thức có độ dài n , vì một số số có nhiều biểu thức. Thay vào đó, chúng tôi chỉ đếm số lượng biểu thức hợp lệ.
Các trường hợp thử nghiệm
1
→ 7
2
→ 31
3
→ 105
Tôi đã kiểm tra ở trên bằng tay, vì vậy hãy đảm bảo kiểm tra kỹ các trường hợp kiểm tra và thêm nhiều hơn nếu bạn có thể!
Tiêu chí chiến thắng
Đây là một thử thách chơi gôn , vì vậy hãy vui vẻ! Tôi sẽ chỉ chấp nhận các giải pháp có thể xử lý ít nhất đầu vào từ 1 đến 9. Bất kỳ phần thưởng nào nữa là tiền thưởng!
Chỉnh sửa
Theo yêu cầu của người bình luận, tìm bên dưới hoặc tại liên kết pastebin này, 105 combo tôi đã tính cho n = 3
III IVI IXI IXV IXX VII XII XIV XIX XVI XXI XXV XXX XLI XLV XLX XCI XCV XCX XCL XCC LII LIV LIX LVI LXI LXV LXX CII CIV CIX CVI CXI CXV CXX CXL CMI CMV CMX CML CMC CMD CMM DII DIV DIX DVI DXI DXV DXX DXL DXC DLI DLV DLX DCI DCV DCX DCL DCC MII MIV MIX MVI MXI MXV MXX MXL MXC MLI MLV MLX MCI MMX MML MMC MMD MMM
Chỉnh sửa 2:
Sử dụng các phi golfed sau đang , như biếu không của Jonathan Allan để kiểm tra kết quả của bạn.
Chỉnh sửa 3:
Tôi xin lỗi vì tất cả các lỗi trong thử thách này. Tôi sẽ đảm bảo thực hiện công việc tốt hơn vào lần tới!