ความท้าทายนี้เป็นเครื่องบรรณาการไปPPCGใช้เดนนิสสำหรับผู้ชนะส่วนโจรของภาษาการเขียนโปรแกรมแบบทดสอบ
ดูที่หน้าโปรไฟล์ PPCG ของ Dennisเราสามารถเห็นสิ่งที่น่าประทับใจ:
ปัจจุบันเขามีชื่อเสียงกว่าหกหมื่นแปดพันคนทำให้เขาเป็นที่สองในภาพรวมโดยมีอันดับที่สามเกือบสามหมื่นคน เมื่อเร็ว ๆ นี้เขาชนะการเลือกตั้งของเราเพื่อเป็นผู้ดำเนินรายการใหม่และได้รับเพชรรูปเงางามใหม่ถัดจากชื่อของเขา แต่ส่วนตัวแล้วฉันคิดว่าส่วนที่น่าสนใจที่สุดเกี่ยวกับ Dennis คือหมายเลขประจำตัวผู้ใช้ PPCG ของเขา: 12012
เมื่อมองดูครั้งแรก12012เกือบจะดูเหมือนเป็นPalindromeตัวเลขที่อ่านเหมือนกันเมื่อกลับด้าน แต่มันออกเล็กน้อย มันจะกลายเป็น palindrome 21012ถ้าเราสลับตำแหน่งของแรก1และ2และมันจะกลายเป็น palindrome 12021ถ้าเราสลับสุดท้ายและ1 2นอกจากนี้การปฏิบัติตามอนุสัญญาที่เลขศูนย์นำหน้าในตัวเลขนั้นไม่ได้ถูกเขียนขึ้นการสลับอันดับแรก1และ0ผลลัพธ์ใน02112หรือมากกว่า2112ซึ่งเป็นอีกรูปแบบหนึ่ง
ลองกำหนดหมายเลขเดนนิสเป็นจำนวนเต็มบวกที่ไม่ได้เป็นแบบ palindromic แต่สามารถสร้างเป็นแบบ palindrome โดยการสลับตำแหน่งอย่างน้อยหนึ่งคู่ของสองหลักใด ๆ การสั่งซื้อของจำนวนเดนนิสเป็นจำนวนคู่ที่แตกต่างของตัวเลขที่สามารถสลับที่จะทำให้ (ไม่จำเป็นต้องแตกต่างกัน) palindrome
ดังนั้นคำสั่งของ120123 ตั้งแต่ 3 คู่ที่แตกต่างของตัวเลขมัน ( 12012, , ) สามารถสลับไปรอบ ๆ เพื่อผลิต palindromes เกิดขึ้นเป็นคำสั่งที่เล็กที่สุด 3 หมายเลขเดนนิส120121201212012
10เป็นหมายเลขเดนนิสที่เล็กที่สุดและมีลำดับที่ 1 เนื่องจากการสลับไปมา1และ0ให้01aka 1ซึ่งเป็น palindrome
เลขศูนย์นำจำนวนจินตภาพของตัวเลขไม่นับเป็นหลักที่เปลี่ยนได้ ยกตัวอย่างเช่นการเปลี่ยนแปลง8908ไป08908และการแลกเปลี่ยนตัวเลขสองหลักแรกที่จะได้รับ palindrome 80908ไม่ถูกต้อง 8908ไม่ใช่หมายเลขเดนนิส
หมายเลขที่ไม่ใช่เดนนิสอาจถูกกล่าวว่ามีคำสั่ง 0
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในจำนวนเต็มบวก n และพิมพ์หรือส่งกลับจำนวนชับเดนนิสที่เล็กที่สุดพร้อมกับคำสั่งในรูปแบบที่เหมาะสมบางอย่างเช่นหรือ12012 3(12012, 3)
ตัวอย่างเช่น12012คือหมายเลขเดนนิสที่ 774 ดังนั้นหาก774มีการป้อนข้อมูลเข้าสู่โปรแกรมของคุณเอาต์พุตควรมีลักษณะ12012 3ดังนี้ (อยากรู้อยากเห็น 774 เป็นอีกหมายเลขเดนนิส)
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
นี่คือตัวเลขเดนนิส 20 อันดับแรกและคำสั่งซื้อของพวกเขาสำหรับการอ้างอิง:
N Dennis Order
1 10 1
2 20 1
3 30 1
4 40 1
5 50 1
6 60 1
7 70 1
8 80 1
9 90 1
10 100 1
11 110 2
12 112 1
13 113 1
14 114 1
15 115 1
16 116 1
17 117 1
18 118 1
19 119 1
20 122 1
