พื้นหลัง
พิจารณาลำดับที่กำหนดดังนี้:
- องค์ประกอบแรกคือ 0;
- องค์ประกอบที่สองคือ 4;
- จากองค์ประกอบที่สามเป็นต้นไปค่าสามารถคำนวณได้โดย:
- การตั้งค่าจำนวนเต็มตั้งแต่ 0 ถึงองค์ประกอบก่อนหน้าของลำดับ (รวมหรือพิเศษไม่สำคัญ);
- การลบจำนวนเต็มใด ๆ ที่มีอยู่แล้วก่อนหน้านี้ในลำดับจากชุด;
- การรวมองค์ประกอบที่เหลือของชุดเข้าด้วยกัน นั่นคือคุณค่าที่คุณต้องการ
ที่น่าสนใจลำดับนี้ไม่ได้ดูเหมือนจะอยู่ในOEISเลย
งาน
เขียนโปรแกรมหรือฟังก์ชั่นซึ่งรับจำนวนเต็มnเป็นอินพุตและส่งออกองค์ประกอบที่nของลำดับ
กรณีทดสอบ
องค์ประกอบสองสามอย่างแรกของลำดับคือ:
- 0
- 4
- 6 (1 + 2 + 3)
- 11 (1 + 2 + 3 + 5)
- 45 (1 + 2 + 3 + 5 + 7 + 8 + 9 + 10)
- 969 (1 + 2 + 3 + 5 + 7 … 10 + 12 … 44)
- 468930 (1 + 2 + 3 + 5 + 7 … 10 + 12 … 44 + 46 … 968)
ชี้แจง
- ในทางทฤษฎีโปรแกรมของคุณควรสามารถจัดการกับnเองได้หากทำงานกับภาษาที่มีจำนวนเต็มจำนวนมากและเข้าถึงหน่วยความจำได้ไม่ จำกัด จำนวน (ภาษาที่ไม่มี bignums ไม่น่าจะได้รับเกิน 46,8930 แต่ไม่มีข้อแก้ตัวที่จะ hardcode คำตอบ)
- คุณอาจเลือกการจัดทำดัชนีตาม 0 หรือ 1 สำหรับลำดับ (เช่นมันขึ้นอยู่กับคุณว่าn = 1 ส่งกลับองค์ประกอบแรก, n = 2 องค์ประกอบที่สองและอื่น ๆ หรือว่าn = 0 ส่งกลับองค์ประกอบแรก , n = 1 องค์ประกอบที่สองและอื่น ๆ )
- ไม่มีข้อกำหนดเกี่ยวกับอัลกอริทึมที่คุณใช้หรือประสิทธิภาพ คุณอาจใช้คำจำกัดความของลำดับโดยตรง (แม้ว่าจะไม่มีประสิทธิภาพจริงๆ) และคุณอาจใช้อัลกอริทึมที่แตกต่างซึ่งนำไปสู่ผลลัพธ์เดียวกัน
เงื่อนไขชัยชนะ
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่ถูกต้องสั้นที่สุดวัดเป็นไบต์ชนะ