บทนำ
ในคณิตศาสตร์ตัวเลขหลายเหลี่ยมเป็นตัวเลขที่แสดงเป็นจุดหรือก้อนกรวดที่จัดเรียงในรูปของรูปหลายเหลี่ยมปกติ จุดต่างๆนั้นคิดว่าเป็นตัวอักษร (หน่วย) นี่เป็นตัวเลขเปรียบเทียบสองมิติหนึ่งประเภท
ตัวอย่างเช่นหมายเลข 10 สามารถจัดเรียงเป็นรูปสามเหลี่ยมได้:
* ** *** ****
แต่ 10 ไม่สามารถจัดเป็นสี่เหลี่ยม ในทางกลับกันหมายเลข 9 สามารถ:
*** *** ***
ตัวเลขบางตัวเช่น 36 สามารถจัดเรียงได้ทั้งแบบสี่เหลี่ยมจัตุรัสและสามเหลี่ยม:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
ตามแบบแผน 1 คือหมายเลขรูปหลายเหลี่ยมแรกสำหรับจำนวนด้านใด ๆ กฎสำหรับการขยายรูปหลายเหลี่ยมให้มีขนาดถัดไปคือการขยายแขนข้างที่ติดกันสองจุดด้วยจุดเดียวแล้วเพิ่มด้านพิเศษที่จำเป็นระหว่างจุดเหล่านั้น ในไดอะแกรมต่อไปนี้แต่ละเลเยอร์พิเศษจะแสดงเป็นสีแดง
ตัวเลขสามเหลี่ยม:
หมายเลขสแควร์:
รูปหลายเหลี่ยมที่มีจำนวนด้านสูงกว่าเช่นเพนตากอนและรูปหกเหลี่ยมสามารถสร้างได้ตามกฎนี้แม้ว่าจุดจะไม่กลายเป็นโครงตาข่ายปกติอย่างสมบูรณ์แบบดังกล่าวข้างต้น
หมายเลขห้าเหลี่ยม:
ตัวเลขหกเหลี่ยม:
ที่มา: Wikipedia
งานของคุณ
รับจำนวนเต็มบวกN (1 <= N <= 1,000) พิมพ์ทุกชนิดของรูปหลายเหลี่ยมจำนวนNเริ่มต้นจากตัวเลขสามเหลี่ยมจนถึงและรวมถึงตัวเลข Icosagonal (20-gon)
ตัวอย่างเช่นหมายเลข 10 คือตัวเลขสามเหลี่ยมและตัวเลขทศนิยมดังนั้นผลลัพธ์ควรเป็นดังนี้ (คุณสามารถเลือกรูปแบบผลลัพธ์ของคุณเองได้ แต่ควรมีลักษณะดังนี้):
3 10
กรณีทดสอบ
1 -> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 -> (None)
3 -> 3
6 -> 3 6
36 -> 3 4 13
สำหรับการอ้างอิงหมายเลขn
-th k
-gonal คือ:
เครดิต: xnor
จำไว้ว่านี่คือcode-golfดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ
n
จำนวน k-TH gonal(k-2)*n*(n-1)/2 + n
คือ