(ชื่อด้วยขอบคุณ @ChasBrown)
พื้นหลัง
ความท้าทายนี้เป็นแรงบันดาลใจคำถามที่ฉันเพิ่งโพสต์บนงง Stack แลกเปลี่ยน โปรดติดตามลิงค์หากคุณสนใจคำถามเดิม ถ้าไม่เช่นนั้นฉันจะไม่เบื่อคุณพร้อมรายละเอียดที่นี่
ข้อเท็จจริง
อักขระ ASCII มาตรฐานที่พิมพ์ได้ทุกตัวมีค่าทศนิยมตั้งแต่ 32 ถึง 126 ตัว สามารถแปลงเป็นเลขฐานสองที่สอดคล้องกันในช่วง 100000 ถึง 1111110 เมื่อคุณรวมจำนวนบิตของเลขฐานสองเหล่านี้คุณจะต้องลงท้ายด้วยจำนวนเต็มตั้งแต่ 1 ถึง 6
ความท้าทาย
กำหนดจำนวนเต็มตั้งแต่ 1 ถึง 6 ให้รวมเป็นอินพุตให้เขียนโปรแกรมหรือฟังก์ชันซึ่งจะส่งออกในรูปแบบที่ยอมรับได้ทุกตัวอักษร ASCII มาตรฐานที่พิมพ์ได้โดยที่ผลรวมของบิตของค่าไบนารีของพวกเขาจะเท่ากับจำนวนเต็มอินพุต
ตัวอย่าง / กรณีทดสอบ
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
ungolfed ดำเนินการอ้างอิงหลามใช้ได้นี่ (TIO)
กฎระเบียบ
- สมมติว่าอินพุตจะเป็นจำนวนเต็มเสมอ (หรือการแทนค่าสตริงของจำนวนเต็ม) ระหว่าง 1 ถึง 6
- คุณสามารถเขียนโปรแกรมเพื่อแสดงผลลัพธ์หรือฟังก์ชั่นเพื่อส่งคืนได้
- การส่งออกอาจจะอยู่ในรูปแบบที่เหมาะสมใด ๆ แต่จะต้องมีความสอดคล้องกันสำหรับปัจจัยการผลิตทั้งหมด หากคุณเลือกที่จะส่งออกสตริงที่ยกมาจากนั้นจะต้องใช้อัญประกาศชนิดเดียวกันสำหรับอินพุตทั้งหมด
- ช่องโหว่มาตรฐานไม่ได้รับอนุญาตตามปกติ
- นี่คือรหัสกอล์ฟที่สั้นที่สุดในแต่ละภาษาที่ชนะ
'
) สำหรับการแทนสตริงของสตริงตามค่าเริ่มต้น แต่ใช้เครื่องหมายคำพูดคู่ ( "
) ถ้าสตริงมีเครื่องหมายคำพูดเดี่ยวและไม่มีเครื่องหมายคำพูดคู่ . ไม่ว่ากรณีนี้จะมีความสำคัญมากเพราะคุณน่าจะดีกว่าที่จะส่งคืนสตริงจริงแทนที่จะเป็นตัวแทนของมันและคุณยังสามารถใช้เครื่องหมายคำพูดเดี่ยวในสตริงเพื่อป้อนข้อมูลได้ แต่ฉันรู้สึกว่ามันควรค่าแก่การกล่าวถึงที่นี่
« »
)? : D
63
vs?
)