เขียนฟังก์ชั่นหรือโปรแกรมที่ส่งออกจำนวนขององค์ประกอบแต่ละประเภท (จุดยอด, ขอบ, ใบหน้า, ฯลฯ ) ของ hypercube N-Dim
ตัวอย่างเช่นลูกบาศก์ 3 มิติมี 1 เซลล์ (เช่น 1 ลูกบาศก์ 3 มิติ), 6 ใบหน้า (เช่น 6 2 มิติมิติ), 12 ขอบ (เช่น 12 มิติสองมิติ) และ 8 จุดยอด (เช่น 8 0 มิติ ลูกบาศก์).
รายละเอียดเพิ่มเติมเกี่ยวกับองค์ประกอบ Hypercube สามารถดูได้ที่นี่
คุณสามารถดูลำดับ OEIS ต่อไปนี้ได้เช่นกัน
อินพุต
รหัสของคุณจะใช้เป็นอินพุต (ผ่าน STDIN หรือพารามิเตอร์ฟังก์ชันหรือสิ่งที่คล้ายกัน) จำนวนเต็มมากกว่าหรือเท่ากับ 0 ซึ่งเป็นขนาดของไฮเปอร์คิวบ์
รหัสของคุณต้องทำงานในทางทฤษฎีสำหรับอินพุตใด ๆ > = 0 โดยไม่คำนึงถึงปัญหาหน่วยความจำและปัญหาเวลา (นั่นคือความเร็วและสแต็คล้นที่มากเกินพอจะไม่เป็นปัญหาสำหรับคำตอบของคุณหากอินพุตมีขนาดใหญ่) อินพุตที่ให้เป็นกรณีทดสอบจะไม่เกิน 12
เอาท์พุต
คุณจะออกรายการองค์ประกอบทั้งหมดของไฮเปอร์คิวบ์โดยเริ่มจากองค์ประกอบ "ขนาดสูงสุด" ตัวอย่างเช่นสำหรับคิวบ์ (อินพุต = 3) คุณจะส่งออกรายการ[1,6,12,8]
(1 เซลล์, 6 ใบหน้า, 12 ขอบ, 8 จุดยอด)
รูปแบบของรายการในผลลัพธ์นั้นค่อนข้างฟรีตราบใดที่มันดูเหมือนรายการ
คุณสามารถส่งออกผลลัพธ์ไปยัง STDOUT หรือส่งกลับจากฟังก์ชั่น
กรณีทดสอบ
Input = 0
Output = [1]
Input = 1
Output = [1,2]
Input = 3
Output = [1,6,12,8]
Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]
Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ