Lý lịch
Hầu hết mọi người ở đây nên làm quen với một số hệ thống cơ bản: thập phân, nhị phân, thập lục phân, bát phân. Ví dụ, trong hệ thập lục phân, số 12345 16 sẽ đại diện cho
1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0
Lưu ý rằng chúng ta thường không mong đợi cơ sở (ở đây, 16
) thay đổi từ chữ số sang chữ số.
Tổng quát hóa các hệ thống vị trí thông thường này cho phép bạn sử dụng một cơ sở số khác nhau cho mỗi chữ số. Ví dụ: nếu chúng ta xen kẽ giữa hệ thập phân và hệ nhị phân (bắt đầu bằng cơ sở 10 bằng chữ số có nghĩa ít nhất), số 190315 [2,10] sẽ đại diện
1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675
Chúng tôi biểu thị cơ sở này là [2,10]
. Cơ sở bên phải nhất tương ứng với chữ số có nghĩa ít nhất . Sau đó, bạn đi qua các căn cứ (bên trái) khi bạn đi qua các chữ số (bên trái), quấn quanh nếu có nhiều chữ số hơn căn cứ.
Để đọc thêm, xem Wikipedia .
Các thách thức
Viết chương trình hoặc hàm, đưa ra danh sách các chữ số D
một cơ sở đầu vào I
và cơ sở đầu ra O
, chuyển đổi số nguyên được biểu thị D
từ cơ sở I
sang cơ sở O
. Bạn có thể nhận đầu vào thông qua STDIN, ARGV hoặc đối số hàm và trả về kết quả hoặc in ra STDOUT.
Bạn có thể giả sử:
- các số trong
I
vàO
đều lớn hơn1
. - các
I
vàO
đều là phòng không trống. - số đầu vào là hợp lệ trong cơ sở đã cho (nghĩa là không có chữ số nào lớn hơn cơ sở của nó).
D
có thể trống (đại diện 0
) hoặc có thể có các số 0 đứng đầu. Đầu ra của bạn không được chứa các số 0 hàng đầu. Cụ thể, một kết quả đại diện 0
nên được trả về dưới dạng một danh sách trống.
Bạn không được sử dụng bất kỳ chức năng chuyển đổi cơ sở tích hợp hoặc bên thứ ba nào.
Đây là mã golf, câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
D I O Result
[1,0,0] [10] [2] [1,1,0,0,1,0,0]
[1,0,0] [2] [10] [4]
[1,9,0,3,1,5] [2,10] [10] [7,6,7,5]
[1,9,0,3,1,5] [2,10] [4,3,2] [2,0,1,1,0,1,3,0,1]
[52,0,0,0,0] [100,7,24,60,60] [10] [3,1,4,4,9,6,0,0]
[0,2,10] [2,4,8,16] [42] [1,0]
[] [123,456] [13] []
[0,0] [123,456] [13] []
[]
nếu đầu vào là[0]