Căn cứ cân bằng:
Các cơ sở cân bằng về cơ bản giống như các cơ sở bình thường, ngoại trừ các chữ số có thể dương hoặc âm, trong khi ở các cơ sở bình thường, các chữ số chỉ có thể dương.
Từ đây trở đi, các cơ sở cân bằng của cơ sở bcó thể được biểu diễn dưới dạng balb- vì vậy cơ sở cân bằng 4 = bal4.
Trong định nghĩa của thách thức này, phạm vi các chữ số trong một cơ sở cân bằng blà từ -(k - 1)đến b - k, trong đó
k = ceil(b/2)
Ví dụ về phạm vi chữ số trong các cơ sở cân bằng khác nhau:
bal10:
k = ceil(10/2) = 5
range = -(5 - 1) to 10 - 5 = -4 to 5
= -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
bal5:
k = ceil(5/2) = 3
range = -(3 - 1) to 5 - 3 = -2 to 2
= -2, -1, 0, 1, 2
Đại diện của các số trong các cơ sở cân bằng về cơ bản là giống như các cơ sở bình thường. Ví dụ: việc biểu diễn số 27(cơ sở 10) thành bal4(cơ sở 4 cân bằng) là 2 -1 -1bởi vì
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Bài tập:
Nhiệm vụ của bạn là, đưa ra ba đầu vào:
- số được chuyển đổi (
n)- đầu vào này có thể linh hoạt, xem "Linh hoạt I / O"
- cơ sở
nhiện đang ở (b) - cơ sở
nđược chuyển đổi thành (c)
Ở đâu 2 < b, c < 1,000.
Trả về số trong cđại diện cơ sở cân bằng của n. Đầu ra cũng có thể linh hoạt.
Chương trình / chức năng phải xác định độ dài ntừ chính đầu vào.
Linh hoạt I / O:
Đầu vào nvà đầu ra của bạn có thể được thể hiện theo những cách sau:
- định nghĩa ngôn ngữ của bạn về một mảng
- một chuỗi, với bất kỳ ký tự nào làm dấu phân cách (ví dụ: dấu cách, dấu phẩy)
Ví dụ:
Lưu ý rằng những cái này sử dụng một mảng Python như nvà đầu ra. Bạn có thể sử dụng bất cứ điều gì phù hợp với ngôn ngữ của bạn, miễn là nó phù hợp với định nghĩa của "I / O Flexility".
[2, -1, -1] 4 7 = [1, -3, -1]
[1, 2, 3, 4] 9 5 = [1, 2, 2, -1, 2]
[10, -9, 10] 20 5 = [1, 1, 1, -2, 1, 0]
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng!
[1,1,1,-2,1,0]