พื้นหลัง
คนส่วนใหญ่ที่นี่ควรคุ้นเคยกับระบบฐานหลายระบบ: ทศนิยม, ไบนารี, ฐานสิบหก, ฐานแปด เช่นในระบบเลขฐานสิบหกตัวเลข12345 16จะเป็นตัวแทน
1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0
โปรดทราบว่าโดยปกติเราไม่คาดหวังว่า16
จะมีการเปลี่ยนจากหลักเป็นหลัก
การวางตำแหน่งของระบบตำแหน่งปกติเหล่านี้ทำให้คุณสามารถใช้ฐานตัวเลขที่แตกต่างกันสำหรับแต่ละหลัก เช่นถ้าเราสลับระหว่างระบบทศนิยมและฐานสอง (เริ่มต้นด้วยฐาน 10 ในหลักสำคัญน้อยที่สุด) หมายเลข190315 [2,10]จะแทน
1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675
[2,10]
เราแสดงว่าฐานนี้เป็น ฐานที่ถูกต้องที่สุดสอดคล้องกับตัวเลขที่มีนัยสำคัญน้อยที่สุด จากนั้นคุณผ่านฐาน (ไปทางซ้าย) ในขณะที่คุณผ่านหลัก (ไปทางซ้าย) ให้ล้อมรอบหากมีจำนวนมากกว่าฐาน
สำหรับการอ่านเพิ่มเติมดูวิกิพีเดีย
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับรายชื่อของตัวเลขD
ฐานการป้อนข้อมูลI
และฐานการส่งออกO
แปลงจำนวนเต็มตัวแทนจากD
จากฐานไปยังฐานI
O
คุณสามารถรับอินพุตผ่าน STDIN, ARGV หรืออาร์กิวเมนต์ของฟังก์ชันและส่งคืนผลลัพธ์หรือพิมพ์ไปที่ STDOUT
คุณอาจจะ:
- ว่าตัวเลขใน
I
และทุกคนมากกว่าO
1
I
และO
มีไม่ว่างเปล่า- หมายเลขอินพุตนั้นถูกต้องในฐานที่กำหนด (กล่าวคือไม่มีตัวเลขใหญ่กว่าฐาน)
D
อาจว่างเปล่า (แสดง0
) หรืออาจมีศูนย์นำหน้า ผลลัพธ์ของคุณไม่ควรมีเลขศูนย์นำหน้า โดยเฉพาะอย่างยิ่งผลลัพธ์ที่แสดง0
ควรถูกส่งคืนเป็นรายการว่าง
คุณต้องไม่ใช้ฟังก์ชันการแปลงพื้นฐานในตัวหรือของบุคคลที่สาม
นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
ตัวอย่าง
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] []
[]
หากอินพุตคือ[0]