Monday Mini-Golf:ชุดของความท้าทายรหัสสั้น ๆกอล์ฟโพสต์ (หวังว่า!) ทุกวันจันทร์
Fibonacci เหมือนลำดับจะได้รับโดยใช้วิธีการเดียวกับที่มีชื่อเสียงลำดับฟีโบนักชี ; นั่นคือแต่ละหมายเลขF (n)ถูกค้นพบโดยการเพิ่มตัวเลขสองตัวก่อนหน้านี้ในลำดับ ( F (n) = F (n-1) + F (n-2) ) หรือโดยการลบตัวเลขสองตัวถัดไป ( F (n) = F (n + 2) - F (n + 1) ) ความแตกต่างที่สำคัญคือลำดับเหล่านี้สามารถเริ่มต้นด้วยตัวเลขสองตัวใด ๆ การจัดทำดัชนีเป็นศูนย์ของลำดับเหล่านี้ไม่แน่นอน แต่สำหรับตอนนี้เราจะใช้กฎนี้:
- หมายเลขที่ 0 ในลำดับที่เหมือน Fibonacci คือหมายเลขสุดท้ายซึ่งเล็กกว่าหมายเลขก่อนหน้า
ตัวอย่างเช่นลำดับฟีโบนักชีอาจจะเขียนเป็น1, 0, 1, 1, 2, 3, 5...
ดังนั้นจำนวน 0 0
ในลำดับเป็นคนเดียว
ท้าทาย
เป้าหมายของการท้าทายคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มสามตัวในรูปแบบใดก็ได้:
- AและBหมายถึงตัวเลขสองตัวที่จะเริ่มสร้างลำดับ
- Nความยาวของลำดับผลลัพธ์เป็นเอาต์พุต
และส่งออกตัวเลขNแรกของลำดับเริ่มต้นที่ 0
รายละเอียด
- อาจใช้ A , BและNในลำดับและรูปแบบใดก็ได้ตราบใดที่แยกออกจากกันอย่างชัดเจน หากคุณใช้คำสั่ง / รูปแบบอื่นโปรดระบุว่ามันคืออะไร
- คุณอาจสมมติว่าA , BและNเป็นจำนวนเต็มบวกเสมอ
- คุณอาจจะคิดว่าไม่มีคือไม่เกิน 100
x >= 2^31
และลำดับผลจะไม่ประกอบด้วย - ถ้าAใหญ่กว่าBดังนั้นBคือหมายเลขที่ 0 ในลำดับ
- เอาต์พุตจะต้องคั่นด้วยช่องว่างเครื่องหมายจุลภาคและ / หรือบรรทัดใหม่
- อนุญาตการเว้นวรรคหรือการขึ้นบรรทัดใหม่ แต่ไม่ใช่เครื่องหมายจุลภาคต่อท้าย
การทดสอบกรณี
ตัวอย่างที่ 1:
8 13 10
การทำงานย้อนกลับจากจนกว่าเราจะพบว่าจำนวนขนาดใหญ่กว่าก่อนหน้านี้ที่เราได้รับ8 13
13 8 5 3 2 1 1 0 1
ดังนั้นจึง0
เป็นหมายเลขที่ 0 ในลำดับนี้ เราจะพิมพ์ออกมา0
และสมาชิก 9 คนถัดไป:
0 1 1 2 3 5 8 13 21 34
ตัวอย่างที่ 2:
23 37 5
อีกครั้งการทำงานย้อนหลังเพื่อหาจำนวน 0 37 23 14 9 5 4 1 3
เราพบ หมายเลข 0 ในเวลานี้คือ1
ดังนั้นเราจึงพิมพ์ออกมาพร้อมกับสมาชิก 4 คนถัดไป:
1 4 5 9 14
ตัวอย่างที่ 3:
4 3 8
ด้วยหมายเลขนี้เราไม่จำเป็นต้องย้อนกลับเพื่อหาหมายเลขที่ 0 เพราะ3
เล็กกว่า4
:
3 7 10 17 27 44 71 115
ตัวอย่างที่ 4:
29 47 11
ผล:
1 3 4 7 11 18 29 47 76 123 199
เกณฑ์การให้คะแนน
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่ถูกต้องสั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker ไปที่การโพสต์ก่อนหน้านี้ ผู้ชนะจะได้รับเลือกในวันจันทร์ที่ 28 ก.ย. โชคดี!
แก้ไข:ขอแสดงความยินดีกับผู้ชนะของคุณ @Jakube โดยใช้ Pyth ขนาด 23 ไบต์ที่น่าทึ่ง!
[8, 13, 10]
)