ฉันไม่ได้ตรวจสอบกล่องเครื่องมือก่อนที่จะโพสต์ความท้าทายนี้ - มันดูเหมือนว่าความท้าทายนี้ถูกเสนอโดยCᴏɴᴏʀO'Bʀɪᴇɴ
รับอินพุตจำนวนเต็มเขียนโปรแกรมที่พิมพ์ริดเดิ้ล "สี่คือจำนวนเวทย์มนตร์"
- สี่คือหมายเลขเวทย์มนตร์
- ห้าคือสี่และสี่คือเลขอาคม
- หกเป็นสามและสามคือห้าและห้าคือสี่และสี่คือเลขกล
- สิบเอ็ดคือหกและหกคือสามและสามคือห้าและห้าคือสี่และสี่คือเวทมนตร์
- ห้าร้อยเป็นสิบเอ็ดและสิบเอ็ดคือหกและหกคือสามและสามคือห้าและห้าคือสี่และสี่คือจำนวนเวทมนตร์
หากคุณรู้จักไขปริศนาอยู่แล้วหรือขี้เกียจเกินกว่าที่จะแก้ปัญหาได้ก็อยากรู้ว่าปริศนานี้คืออะไรนี่คือคำอธิบาย
หมายเลขถัดไปคือจำนวนตัวอักษรในหมายเลขก่อนหน้า ดังนั้นสำหรับตัวอย่างเช่นห้ามีสี่ตัวอักษรดังนั้นจำนวนต่อไปคือสี่
หกมีตัวอักษรสามตัวดังนั้นหมายเลขถัดไปคือ3และสามมีตัวอักษรห้าตัวดังนั้นหมายเลขถัดไปคือ5และห้ามีตัวอักษรสี่ตัวดังนั้นหมายเลขต่อไปคือ4
เหตุผลที่ปริศนาจบที่สี่คือเพราะสี่มีสี่ตัวอักษร และสี่คือสี่และสี่คือสี่และสี่คือสี่ ... (สี่คือเลขกล)
กรณีทดสอบ
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
กฎระเบียบ
- อินพุตอาจถูกนำมาจาก
STDIN
หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน - อินพุตจะเป็นตัวเลขบวกระหว่าง 0 ถึง 999,999
- ข้อมูลที่ป้อนจะมีตัวเลขเท่านั้น (จะเป็นไปตาม regex
^[0-9]+$
) - อินพุตสามารถนำมาเป็นจำนวนเต็มหรือสตริง
- เมื่อแปลงเป็นสตริงคำช่องว่างและยัติภังค์ไม่ควรรวมอยู่ในการนับ (100 [หนึ่งร้อย] คือ 10 ตัวอักษรไม่ใช่ 11 1,742 [หนึ่งพันเจ็ดร้อยสี่สิบสอง] คือ 31 ตัวอักษรไม่ใช่ 36)
- เมื่อแปลงเป็นสตริง 100 ควรเป็นหนึ่งร้อยไม่ใช่หนึ่งร้อยหรือร้อย 1,000 ควรเป็นหนึ่งพันไม่ใช่หนึ่งพันหรือหนึ่งพัน
- เมื่อแปลงเป็นสตริง 142 ควรเป็นหนึ่งร้อยสี่สิบสองไม่ใช่หนึ่งร้อยและสี่สิบสอง
- เอาต์พุตเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และควรเป็นไปตามรูปแบบ " NคือKและKคือMและMคือ ... และสี่คือหมายเลขเวทย์มนตร์" (เว้นแต่อินพุตคือ 4 ซึ่งในกรณีนี้เอาต์พุตควรเป็น "สี่" คือหมายเลขเวทมนต์ ")
- ผลลัพธ์สามารถใช้ตัวเลขแทนตัวอักษร ("5 คือ 4 และ 4 คือหมายเลขเวทย์มนตร์" แทน "ห้าคือสี่และสี่คือหมายเลขเวทย์มนตร์") ตราบใดที่โปรแกรมของคุณสอดคล้องกันเสมอ
- เอาท์พุทอาจเป็นค่าตอบแทนของฟังก์ชั่นหรือพิมพ์
STDOUT
- ช่องโหว่มาตรฐานใช้
- นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ โชคดี!
โบนัส
-30 ไบต์หากโปรแกรมทำงานเมื่ออินพุตอยู่ระหว่าง -999,999 ถึง 999,999
ตัวเลขลบเมื่อแปลงเป็นคำให้มี "ลบ" อยู่ข้างหน้า ตัวอย่างเช่น-4
"Negative Four", Negative Four คือสิบสองและสิบสองคือหกและหกคือสามและสามคือห้าและห้าคือสี่และสี่คือจำนวนมายากล
-150 ไบต์หากโปรแกรมไม่ได้ใช้ฟังก์ชั่นในตัวสำหรับการสร้างการแสดงสตริงของจำนวน
ลีดเดอร์บอร์ด
นี่คือตัวอย่างสแต็กที่สร้างทั้งกระดานผู้นำและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยบรรทัดแรกโดยใช้เทมเพลต Markdown ต่อไป
## Language Name, N bytes
โดยที่ N คือขนาดไบต์ของการส่งของคุณ
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (ตัวอย่างเช่นการดูผ่านคะแนนเก่าหรือรวมถึงการตั้งค่าสถานะในจำนวนไบต์) เพียงตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นจำนวนสุดท้ายในส่วนหัวของคุณ
## Language Name, <s>K</s> X + 2 = N bytes