ฐานที่สมดุล:
ฐานที่สมดุลเป็นหลักเหมือนกับฐานปกติยกเว้นว่าตัวเลขจะเป็นค่าบวกหรือลบในขณะที่ตัวเลขฐานปกติจะเป็นค่าบวกเท่านั้น
จากที่นี่ในฐานความสมดุลของฐานb
อาจจะแสดงเป็นbalb
- ฐานความสมดุลเพื่อให้ 4 bal4
=
ในคำจำกัดความของความท้าทายนี้ช่วงของตัวเลขในฐานที่สมดุลb
คือจาก-(k - 1)
ถึงb - k
ซึ่ง
k = ceil(b/2)
ตัวอย่างของช่วงของตัวเลขในฐานสมดุลต่างๆ:
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
การแสดงตัวเลขในฐานที่สมดุลนั้นเป็นเช่นเดียวกับฐานปกติ ตัวอย่างเช่นการแสดงตัวเลข27
(ฐาน 10) ถึงbal4
(ฐานสมดุล 4) นั้นเป็น2 -1 -1
เพราะ
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
งาน:
งานของคุณได้รับสามอินพุต:
- จำนวนที่จะแปลง (
n
)- อินพุตนี้สามารถยืดหยุ่นได้โปรดดู "ความยืดหยุ่นของ I / O"
- ฐานซึ่ง
n
อยู่ใน (b
) - ฐานซึ่ง
n
จะถูกแปลงเป็น (c
)
2 < b, c < 1,000
ที่ไหน
กลับตัวเลขในฐานความสมดุลเป็นตัวแทนของc
n
ผลผลิตยังสามารถมีความยืดหยุ่น
โปรแกรม / ฟังก์ชั่นจะต้องกำหนดความยาวของn
อินพุตนั้น
ความยืดหยุ่นของ I / O:
อินพุตn
และเอาต์พุตของคุณสามารถแสดงได้ด้วยวิธีเหล่านี้:
- นิยามภาษาของอาร์เรย์
- สตริงที่มีอักขระใด ๆ เป็นตัวคั่น (เช่นช่องว่างเครื่องหมายจุลภาค)
ตัวอย่าง:
โปรดทราบว่าสิ่งเหล่านี้ใช้อาร์เรย์ Python เป็นn
และเอาต์พุต คุณสามารถใช้สิ่งที่เหมาะกับภาษาของคุณตราบใดที่มันสอดคล้องกับคำจำกัดความของ "I / O Flexibility"
[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]
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!
[1,1,1,-2,1,0]