ในขณะที่ดูเดิลไปรอบ ๆ บนกระดาษสี่เหลี่ยมจตุรัสในวันอื่น ๆ ฉันพบว่ามีฟอนต์พื้นที่ว่างด้านบนเป็นตัวเลข ในกรณีที่คุณไม่ได้เห็นมันยังช่องว่างระหว่างรูปทรงดังกล่าวข้างต้นให้ผลผลิตอัตราส่วนทองคำ1.618033988749 ในการท้าทายนี้งานของคุณคือนำตัวเลขเป็นอินพุตและแสดงตามตัวอย่างที่แสดงด้านบน
นี่คือวิธีการสร้างสิ่งเหล่านี้ เส้นทั้งหมดจะอยู่ในกริดปกติเพื่อให้แต่ละหลักประกอบด้วยเซลล์กริดจำนวนน้อย นี่คือรูปทรงของตัวเลข 10 หลัก (เราจะละเว้นจุดทศนิยมสำหรับความท้าทายนี้):
ใช่7แตกต่างจากตัวอย่างอัตราส่วนทองคำที่ด้านบน ฉันคิดว่าเป็นอย่างนั้น เราจะไปกับอันนี้
ขอให้สังเกตว่าแต่ละหลักสูงห้าเซลล์และสามเซลล์กว้าง ในการแสดงตัวเลขคุณสามารถจินตนาการถึงการวางตัวเลขทั้งหมดไว้ข้างๆกันเช่นมีคอลัมน์ว่างหนึ่งคอลัมน์ระหว่างตัวเลขแต่ละคู่ ตัวอย่างเช่นรับ319
อินพุตเราจะเขียน:
โปรดสังเกตว่าเราเพิ่มหนึ่งคอลัมน์ที่ว่างนำหน้าและต่อท้าย ตอนนี้เรากลับเซลล์:
ผลลัพธ์ควรเป็นขอบเขตของรูปหลายเหลี่ยมที่เป็นผลลัพธ์:
แน่นอนคุณอาจสร้างผลลัพธ์ด้วยวิธีอื่นตราบใดที่เอาต์พุตที่แสดงนั้นมีลักษณะเหมือนกัน
อินพุต
- คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นรับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันเป็นสตริงหรือรายการตัวเลข (คุณไม่สามารถรับตัวเลขได้เนื่องจากจะไม่อนุญาตให้คุณสนับสนุนศูนย์นำหน้า)
- คุณอาจคิดว่าจะไม่มีตัวเลข 16 หลักในอินพุต
เอาท์พุต
- ผลลัพธ์อาจปรากฏบนหน้าจอหรือเขียนลงไฟล์ในรูปแบบภาพทั่วไป
- คุณสามารถใช้กราฟิกแรสเตอร์และเวคเตอร์
- ไม่ว่าในกรณีใดอัตราส่วนของเซลล์ของกริดพื้นฐานต้องเป็น 1 (นั่นคือเซลล์ควรเป็นกำลังสอง)
- ในกรณีของกราฟิกแรสเตอร์แต่ละเซลล์ควรครอบคลุมอย่างน้อย 20 คูณ 20 พิกเซล
- บรรทัดต้องไม่กว้างกว่า 10% ของขนาดเซลล์ ฉันยินดีที่จะให้ระยะห่างหนึ่งหรือสองพิกเซลเนื่องจากนามแฝงที่นี่
- เส้นและพื้นหลังสามารถเป็นสองสีที่แตกต่างอย่างชัดเจน แต่รูปร่างที่สร้างโดยเส้นจะต้องไม่เติม
- จะต้องไม่มีช่องว่างในแต่ละวงปิด
- แน่นอนผลลัพธ์ทั้งหมดจะต้องปรากฏให้เห็น
กรณีทดสอบ
ต่อไปนี้คืออินพุต 10 ตัวซึ่งรวมกันครอบคลุมทุกคู่ที่เป็นไปได้ของตัวเลขที่อยู่ติดกันรวมถึงตัวเลขนำหน้าและต่อท้ายที่เป็นไปได้ทั้งหมด:
07299361548
19887620534
21456837709
39284106657
49085527316
59178604432
69471338025
79581224630
89674235011
97518264003
และนี่คือผลลัพธ์ที่คาดหวังสำหรับสิ่งเหล่านั้น:
ตรวจสอบให้แน่ใจว่ารหัสของคุณใช้งานได้เมื่อได้รับตัวเลขหนึ่งตัว (ฉันไม่ต้องการรวมผลลัพธ์ที่คาดไว้ที่นี่เพราะควรจะชัดเจนและส่วนของกรณีทดสอบนั้นค่อนข้างแน่นพอแล้ว)