ลำดับ N-bonacci ที่คิดค้นโดย @DJMcMayhem ในคำถามนี้เป็นลำดับที่สร้างโดยเริ่มต้นด้วยจำนวนเต็ม 0 และ 1 แล้วเพิ่มหมายเลข N ก่อนหน้าเพื่อสร้างหมายเลขถัดไป ลำดับ N-bonacci พิเศษคือลำดับ N-bonacci ที่เริ่มต้นด้วยตัวเลขอื่นที่ไม่ใช่ 0 และ 1 ซึ่งจะมีชื่อว่า X และ Y หาก N มากกว่าจำนวนคำที่มีอยู่ในลำดับเพียงเพิ่มทั้งหมดที่มีอยู่ เงื่อนไข
ตัวอย่างเช่นลำดับฟีโบนักชีปกติมี N ของ 2 (รับสองรายการก่อนหน้า) และ X และ Y ของ 0 และ 1 หรือ 1 และ 1 ขึ้นอยู่กับผู้ที่คุณถาม
งานของคุณ:
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ตรวจสอบว่าจำนวนเต็ม (A) เป็นส่วนหนึ่งของลำดับ N-bonacci พิเศษที่สร้างขึ้นโดยจำนวนเต็มสามตัวถัดไป (ใช้อินพุตที่สองเป็น N และสามและสี่เป็น X และ Y) . ตรวจสอบให้แน่ใจว่าคุณจัดการกับกรณีพิเศษของ N = 1
การป้อนข้อมูล:
เลขจำนวนเต็มที่ไม่เป็นลบสี่จำนวนคือ A, N, X และ Y
เอาท์พุท:
ค่าความจริง / เท็จที่ระบุว่า A เป็นส่วนหนึ่งของลำดับ N-bonacci ที่สร้างโดยอินพุต N, X และ Y
กรณีทดสอบ:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
เกณฑ์การให้คะแนน:
นี่คือโค้ดกอล์ฟดังนั้นคะแนนต่ำสุดเป็นไบต์ชนะ
N=1
คุณอาจต้องการโทรหาคำถามเนื่องจากมีคำตอบมากมาย (รวมถึงคำตอบปัจจุบันทั้งหมดฉันคิดว่า) จะมีเงื่อนไขความล้มเหลวที่ถือว่าซีรีส์ที่เพิ่มขึ้นอย่างเคร่งครัด นอกจากนี้ยังสามารถX
และY
จะเป็นลบ? นั่นอาจจะทำให้คำตอบที่มีอยู่ทั้งหมดไม่ถูกต้อง
8,1,8,9
และ9,1,8,9
เพื่อให้แน่ใจว่าการN=1
จัดการกรณีตรวจจับค่าที่ไม่ซ้ำX
รวมทั้งY
ค่า (หากคุณต้องการจัดการกับ0,0
คดีคุณควรเพิ่มเรื่องนั้นด้วย)
N==1
เป็นกรณีที่แปลก