"พอดีตัวเลข"
แซมมีแนวคิด "ยอดเยี่ยม" สำหรับการบีบอัด! คุณช่วยได้ไหม
นี่เป็นบทสรุปของแผนการบีบอัดของแซม ก่อนอื่นใช้เลขฐาน 10 แทนจำนวนธรรมชาติใด ๆ ที่มีขนาดเล็กกว่า 2 ^ 16 อย่างเคร่งครัดและเขียนเป็นสตริงไบนารีโดยไม่มีศูนย์นำหน้า
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10,000 17 -> 1,0001 65535 -> 111111111111111
ตอนนี้แทนที่กลุ่มใด ๆ หนึ่งศูนย์หรือมากกว่าด้วยศูนย์เดียว นี่เป็นเพราะจำนวนนั้นผอมลง ตอนนี้สตริงไบนารีของคุณจะเป็นแบบนี้
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10000 -> 10 17 -> 1,0001 -> 101 65535 -> 111111111111111 -> 111111111111111
ทีนี้คุณก็แปลงไบนารี่สตริงกลับไปเป็นเบสพื้นฐาน 10 แล้วส่งออกในรูปแบบที่ยอมรับได้ นี่คือกรณีทดสอบของคุณ จำนวนเต็มแรกแทนการป้อนข้อมูลและจำนวนเต็มสุดท้ายแทนการแสดงผล โปรดทราบว่าบางหมายเลขไม่เปลี่ยนแปลงและสามารถเรียกได้ว่า "พอดี"
1 -> 1 -> 1 -> 1 9 -> 1001 -> 101 -> 5 15 -> 1111 -> 1111 -> 15 13 -> 1101 -> 1101 -> 13 16 -> 10000 -> 10 -> 2 17 -> 1,0001 -> 101 -> 5 65535 -> 1111111111111111 -> 1111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
คุณอาจใช้ภาษาใดก็ได้ แต่โปรดทราบว่าแซมเกลียดช่องโหว่มาตรฐาน นี่คือรหัสกอล์ฟเพื่อให้รหัสสามารถสั้นที่สุดเพื่อให้มีที่ว่างสำหรับหมายเลข "ที่บีบอัด"
หมายเหตุ: นี่ไม่ใช่รูปแบบการบีบอัดที่ยอมรับได้ การใช้สิ่งนี้จะทำให้คุณถูกไล่ออกทันที
จำเป็นต้องมีการอ้างอิง: ฉันไม่ได้รับเครดิตสำหรับแนวคิดนี้ นี่มาจากบล็อกของ @Conor O 'Brien ที่นี่ดู OEIS ของตัวเลขพอดี https://oeis.org/A090078
10000
?