6
คุณสามารถเข้าถึงหมายเลขนี้โดยเพิ่มและจัดเรียงใหม่ได้หรือไม่?
แรงบันดาลใจจากคำถามนี้ใน Math.SE เริ่มต้นด้วย1คุณสามารถดำเนินการหนึ่งในสองอย่างต่อไปนี้ซ้ำ ๆ เพิ่มจำนวนเป็นสองเท่า หรือ จัดเรียงตัวเลขใหม่ตามที่คุณต้องการยกเว้นว่าจะไม่มีศูนย์นำหน้า รับตัวอย่างจากโพสต์ Math.SE ที่เชื่อมโยงเราสามารถเข้าถึง1000ผ่านขั้นตอนต่อไปนี้: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 125, 250, 500, 1000 คุณสามารถเข้าถึงหมายเลขใดในกระบวนการนี้และทางออกที่สั้นที่สุดคืออะไร ความท้าทาย กำหนดจำนวนเต็มบวกNกำหนดลำดับที่สั้นที่สุดที่เป็นไปได้ของจำนวนเต็มถึงNกระบวนการข้างต้นถ้าเป็นไปได้ หากมีวิธีการแก้ปัญหาที่ดีที่สุดหลายอย่างให้ส่งออกหนึ่งในนั้น หากไม่มีลำดับดังกล่าวคุณควรส่งรายการว่าง ลำดับอาจอยู่ในรูปแบบของสตริงหรือรายการที่สะดวกไม่คลุมเครือ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ กรณีทดสอบ นี่คือรายการของตัวเลขที่เข้าถึงได้ทั้งหมดและรวมถึง 256 คอลัมน์แรกคือหมายเลข (อินพุตของคุณ) คอลัมน์ที่สองคือจำนวนขั้นตอนที่เหมาะสมที่สุด (ซึ่งคุณสามารถใช้เพื่อตรวจสอบความถูกต้องของโซลูชันของคุณ) และที่สาม คอลัมน์เป็นลำดับที่เหมาะสมที่สุดในการเดินทาง: …