dc , 25 22 ไบต์
9k5v1+2/3?*1-^5v/0k2/p
ลองออนไลน์!
หรือบันทึกโปรแกรมในไฟล์และเรียกใช้โดยพิมพ์
dc -f *filename*
โปรแกรมยอมรับจำนวนเต็มn ที่ไม่เป็นลบบน stdin และส่งออกผลรวมของnแรกแม้แต่หมายเลข Fibonacci บน stdout (ลำดับ Fibonacci นั้นเริ่มต้นด้วย 0 ตามตัวอย่างของ OP)
โปรแกรมนี้ใช้สูตร (F (3n-1) -1) / 2 สำหรับผลรวมของ n หมายเลขแรกแม้แต่ฟีโบนักชีโดยที่ F เป็นฟังก์ชันฟีโบนักชีปกติที่ได้รับจาก F (0) = 0, F (1) = 1, F (n) = F (n-2) + F (n-1) สำหรับ n> = 2
dc เป็นเครื่องคิดเลขตามสแต็ก นี่คือคำอธิบายโดยละเอียด:
9k # Sets the precision to 9 decimal places (which is more than sufficient).
5v # Push the square root of 5
1+ # Add 1 to the number at the top of the stack.
2/ # Divide the number at the top of the stack by 2.
ณ จุดนี้จำนวน (1 + sqrt (5)) / 2 อยู่ที่ด้านบนสุดของสแต็ก
3 # Push 3 on top of the stack.
? # Read a number from stdin, and push it.
\* # Pop two numbers from the stack, multiply them, and push the product
1- # Subtract 1 from the number at the top of the stack.
ณ จุดนี้ 3n-1 อยู่ที่ด้านบนสุดของสแต็ก (โดยที่ n คืออินพุต) และ (1 + sqrt (5)) / 2 เป็นวินาทีจากด้านบน
^ # Pop two numbers from the stack (x, then y), compute the power y^x, and push that back on the stack.
5v/ # Divide the top of the stack by sqrt(5).
ณ จุดนี้จำนวนที่ด้านบนสุดของสแต็กคือ ((1 + sqrt (5)) / 2) ^ (3n-1)) / sqrt (5) จำนวนเต็มที่ใกล้ที่สุดกับหมายเลขนี้คือ F (3n-1) โปรดทราบว่า F (3n-1) เป็นเลขคี่เสมอ
0k # Change precision to 0 decimal places.
2/ # Divide the top of the stack by 2, truncating to an integer.
p # Print the top of the stack on stdout.