Trang chủ » Blog » Coding Dojo » Kata RomanNumerals

Kata RomanNumerals

bởi CodeGym | 09/12/2023 10:30 | Blog | Coding Dojo

Tôi không tham dự XP2001 của Kent Beck, nhưng tôi tin chắc rằng Kata này đã xuất hiện ở đó. Đây là [video về việc Karl Scotland đã biểu diễn Kata này trên Excel tại Agile2008] và đây là [video cho thấy JonJagger thực hiện bài Kata này trên Ruby sử dụng Cyber-Dojo.org]

Cấp độ của Kata: Dễ

Mô tả bài toán

Người La Mã rất thông minh. Họ đã xâm chiếm và cai trị hầu hết Châu Âu trong suốt hàng trăm năm. Họ phát minh ra những con đường bê tông thẳng, thậm chí là cả những bộ bikini. Tuy nhiên, có một điều đó là họ đã không khám phá ra con số không. Điều này khiến việc ghi chép và đánh dấu những phát kiến trong lịch sử của họ gặp nhiều khó khăn, nhưng hệ thống số của họ vẫn được sử dụng cho đến ngày nay. Ví dụ, đài BBC thường sử dụng dụng số La Mã để ghi ngày tháng cho những chương trình của họ.

Người La Mã dùng 7 chữ cái I, V, X, L, C, D, M (lưu ý những kí tự này được tạo bởi nhiều đường thẳng do đó dễ dàng khắc lên những tấm bảng đá) để biểu diễn các số (I – 1, V – 5, X – 10, L – 50, C – 100, D – 500, M – 1000).

Kata này yêu cầu bạn viết 1 chức năng chuyển đổi 1 số thông thường (hệ Thập phân) sang 1 số La Mã. VD:

  • 1 –>        I
  • 10 –>        X
  • 7 –>        VII
  • v.v…

Xem mô tả chi tiết của bài tập này ở [website tham khảo hữu ích], tại đây đã triển khai Kata này với JavaScript.

Bạn không cần thiết phải chuyển đổi những số lớn hơn 3000 (bản thân người La Mã cũng không có xu hướng đếm những số cao hơn số này).

Lưu ý rằng bạn không thể sử dụng “IM” để biểu diễn cho số 999.

Theo Wikipedia: Số La Mã hiện đại được viết theo quy tắc biểu diễn từng số riêng biệt bắt đầu từ bên trái và bỏ qua những số 0. Để thấy điều này trong thực tế, hãy xem xét cách biểu diễn số 1990. Số La Mã của 1990 (= 1000 + 900 + 90) sẽ được biểu diễn như sau: 1000 = M, 900 = CM, 90 = XC; kết quả là MCMXC. 2008 sẽ được viết là 2000 = MM, 8 = VIII ; 2008 = MMVIII.

Phần 2: Viết một hàm để chuyển ngược lại, số La Mã về số Thập phân.

Nguồn Kata: http://codingdojo.org/kata/RomanNumerals/

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

9 + 12 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM