Kata RomanCalculator

21/04/2017 | Blog, Coding Dojo | 0 Lời bình

Trang chủ » Blog » Coding Dojo » Kata RomanCalculator

Giới thiệu kata

CodersDojoSweden, tổ chức ở Linköping, đã tìm kiếm một bài Kata mới đủ đơn giản dành cho người mới bắt đầu. Và Thomas Nilsson đã đưa ra bài toán Cộng số La Mã.

Mô tả bài toán

Là một kế toán, tôi muốn cộng các số La Mã tự động bởi vì làm việc đó bằng tay quá tẻ nhạt.” Cho các chữ số La Mã cơ sở ( I – 1, V – 5, X – 10, L – 50, C – 100, D – 500, M – 1000), tạo ra hai số La Mã và tính tổng của chúng. Ở Rome thời đó không có số Thập phân hay số nguyên, chúng ta cần làm việc đó với chuỗi kí tự.

Ví dụ: “XIV” + “LX” = “LXXIV”.

Dưới đây là nguyên tắc viết số La Mã:

  • Các chữ số được nối vào nhau thành số lớn hơn (VD: “XX” + “II” = “XXII”)
  • Nếu chữ số nhỏ hơn đứng trước chữ số lớn hơn, lấy chữ số lớn trừ số nhỏ (VD: “IV” là 4, “CM” là 900)
  • Với các chữ số La Mã là I, X, C bạn không thể có nhiều hơn 3 kí tự liên tiếp (VD: Không dùng “IIII” để biểu diễn số 4 mà dùng “IV”)
  • Với các chữ số La Mã là V, L, D bạn không thể có nhiều hơn 1 khi biểu diễn một số (VD: 1000 không biểu diễn là “DD” mà dùng “M” để biểu diễn)

Gợi ý

Nhóm chuỗi và nối chuỗi là chìa khóa để giải quyết bài Kata này. Nhưng hãy nhớ quy tắc về trường hợp số nhỏ hơn đứng trước số lớn hơn ở trên.(Nếu chữ số nhỏ hơn đứng trước chữ số lớn hơn, lấy chữ số lớn trừ số nhỏ, VD: “IV” là 4, “CM” là 900).

Gợi ý các ca kiểm thử (test case)

10 ca kiểm thử đầu tiên tương đối dễ tìm. Tôi không đưa ra chúng ở đây bởi vì tôi thấy rằng bài Kata này là một trong số những bài Kata rất tốt để thực hành việc tìm các ca kiểm thử.

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

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

Tạo và sử dụng USER FUNCTION

Tạo và sử dụng USER FUNCTION

Với các vấn đề mà các FUNCTION không giải quyết được. Thì chúng ta phải tự tạo ra một FUNCTION để sử dụng, hay còn gọi là USER FUNCTION.

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

GỌI NGAY

098 953 44 58

Nhận tư vấn, định hướng 1-1

Điền và gửi thông tin cá nhân để được tư vấn miễn phí về các chương trình học.

13 + 10 =