โซ่ Gozinta
(แรงบันดาลใจจากProject Euler # 606 )
ห่วงโซ่ gozinta สำหรับ n เป็นลำดับ{1,a,b,...,n}
ที่แต่ละองค์ประกอบแบ่งอย่างถูกต้องต่อไป ตัวอย่างเช่นมีแปด gozinta โซ่ที่แตกต่างกันสำหรับ 12:
{1,12}, {1,2,12}, {1,2,4,12}, {1,2,6,12}, {1,3,12}, {1,3,6,12}, {1,4,12} and {1,6,12}.
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก ( n > 1
) และเอาท์พุทหรือส่งกลับค่าเชน gozinta ที่แตกต่างกันทั้งหมดสำหรับจำนวนที่กำหนด
- สั่งในเรื่องโซ่ (น้อยไปหามาก), คำสั่งของโซ่ไม่ได้
- เมื่อมีโอกาสคุณจะไม่สามารถใช้ builtin ที่สามารถแก้ปัญหาได้
- นี่คือรหัสกอล์ฟ
แก้ไข: การลบ1
เป็นอินพุตที่มีศักยภาพ
[[1]]
ฉันจะบอกว่าถ้า[1,1]
gozinta ใน1
ตอนนั้น[1,1,12]
เป็น gozinta 12
อย่างที่เป็นอยู่[1,1,1,12]
และตอนนี้เราสามารถ ไม่ "ส่งคืนทั้งหมด ... "
2|4
ถูกอ่าน "สองเข้าไปในสี่" aka "สอง gozinta สี่"