เรามีความท้าทายเล็กน้อยสำหรับการแปลงฐาน แต่สิ่งเหล่านี้ดูเหมือนจะนำไปใช้กับค่าจำนวนเต็ม มาทำกับตัวเลขจริง!
ความท้าทาย
ปัจจัยการผลิต:
- จำนวน จริงบวกxแสดงในฐาน 10 ซึ่งสามารถนำมาเป็นทศนิยมความแม่นยำสองเท่าหรือเป็นสตริง เพื่อหลีกเลี่ยงปัญหาความแม่นยำจำนวนที่สามารถสันนิษฐานว่าจะเป็นมากกว่า 10 -6และน้อยกว่า 10 15
- ฐานเป้าหมาย ข นี่จะเป็นจำนวนเต็มตั้งแต่ 2 ถึง 36
- จำนวนเศษส่วนตัวเลข n นี่จะเป็นจำนวนเต็มตั้งแต่ 1 ถึง 20
เอาท์พุท: การเป็นตัวแทนของxในฐานขกับตัวเลขเศษส่วนn
เมื่อคำนวณนิพจน์ผลลัพธ์ตัวเลขที่เกินn- th ควรถูกปัดเศษ (ไม่ปัดเศษ) ตัวอย่างเช่นx = 3.141592653589793
ในฐานb = 3
คือ10.0102110122...
ดังนั้นสำหรับn = 3
ผลลัพธ์จะเป็น10.010
(ตัด) ไม่ใช่10.011
(ปัดเศษ)
สำหรับxและbที่สร้างจำนวน จำกัด ของตัวเลขในส่วนที่เป็นเศษส่วนอนุญาตให้ใช้การแทนค่าอนันต์ที่เทียบเท่ากัน (ตัดให้เหลือnหลัก) ยกตัวอย่างเช่นในทศนิยมนอกจากนี้ยังสามารถแสดงเป็น4.5
4.49999...
ไม่ต้องกังวลเกี่ยวกับข้อผิดพลาดจุดลอย
รูปแบบอินพุตและเอาต์พุต
xจะได้รับโดยไม่มีศูนย์นำหน้า หากxเกิดขึ้นเป็นจำนวนเต็มคุณสามารถสันนิษฐานได้ว่าจะได้รับส่วนทศนิยมศูนย์ ( 3.0
) หรือไม่มีส่วนทศนิยม ( 3
)
ผลผลิตมีความยืดหยุ่น ตัวอย่างเช่นมันอาจเป็น:
- สตริงที่แทนตัวเลขด้วยตัวคั่นที่เหมาะสม (จุดทศนิยม) ระหว่างจำนวนเต็มและเศษส่วน ตัวเลข
11
,12
ฯลฯ (สำหรับขเกิน 10) สามารถแสดงเป็นตัวอักษรA
,B
ตามปกติหรือเป็นตัวละครที่แตกต่างอื่น ๆ (โปรดระบุ) - สตริงสำหรับส่วนจำนวนเต็มและสตริงอื่นสำหรับส่วนที่เป็นเศษส่วน
- สองอาร์เรย์ / รายการหนึ่งสำหรับแต่ละส่วนที่มีตัวเลขจาก
0
การ35
เป็นหลัก
ข้อ จำกัด เพียงอย่างเดียวคือชิ้นส่วนจำนวนเต็มและเศษส่วนสามารถแยกออกจากกันได้ (ตัวคั่นที่เหมาะสม) และใช้รูปแบบเดียวกัน (ตัวอย่างเช่นไม่มี[5, 11]
รายการที่แสดงถึงส่วนจำนวนเต็มและ['5', 'B']
รายการแทนส่วนที่เป็นเศษส่วน)
กฎเพิ่มเติม
- โปรแกรมหรือฟังก์ชั่นที่ได้รับอนุญาตในการเขียนโปรแกรมภาษา ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
เอาท์พุทจะแสดงเป็นสตริงด้วยตัวเลข0
, ... , 9
, A
, ... , Z
ใช้.
เป็นตัวคั่นทศนิยม
x, b, n -> output(s)
4.5, 10, 5 -> 4.50000 or 4.49999
42, 13, 1 -> 33.0 or 32.C
3.141592653589793, 3, 8 -> 10.01021101
3.141592653589793, 5, 10 -> 3.0323221430
1.234, 16, 12 -> 1.3BE76C8B4395
10.5, 2, 8 -> 1010.10000000 or 1010.01111111
10.5, 3, 8 -> 101.11111111
6.5817645, 20, 10 -> 6.BCE2680000 or 6.BCE267JJJJ
0.367879441171442, 25, 10 -> 0.94N2MGH7G8
12944892982609, 29, 9 -> PPCGROCKS.000000000
42, 13, 1
เราสามารถมี33
แทน33.0
?
n
ตัวเลขทศนิยม