ในบทความนี้ เราจะเรียนรู้วิธีหาผลรวมของเลขคู่ในอนุกรมฟีโบนัชชีถึงตัวที่ N ในภาษา Java
แนวคิด
อนุกรมฟีโบนัชชี: Fn = Fn-1 + Fn-2 เริ่มจาก 0, 1
ลำดับ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
เลขคู่ในลำดับ: 0, 2, 8, 34, 144, ... (ทุก 3 ตัวจะมีเลขคู่ 1 ตัว)
ตัวอย่างการทำงาน
อินพุต:
Value of n is: 10
เอาต์พุต:
Even sum of Fibonacci series is 10945
อัลกอริทึม
- เริ่มต้นโปรแกรม
- ประกาศตัวแปร:
my_input, i, sum - รับค่า N จากผู้ใช้ หรือกำหนดค่าไว้ล่วงหน้า
- สร้างอาร์เรย์เก็บค่าฟีโบนัชชี ขนาด 2×N+1
- คำนวณค่าฟีโบนัชชีและบวกเฉพาะค่าที่ index เป็นเลขคู่ (i % 2 == 0)
- แสดงผลลัพธ์
- จบโปรแกรม
ตัวอย่างที่ 1: รับค่าจากผู้ใช้
import java.util.Scanner;
import java.io.*;
public class FibonacciSum {
public static void main(String[] args) {
int my_input, i, sum = 0;
System.out.println("Required packages have been imported");
Scanner my_scanner = new Scanner(System.in);
System.out.println("A reader object has been defined");
System.out.println("Enter the value of N: ");
my_input = my_scanner.nextInt();
int[] fibonacci = new int[2 * my_input + 1];
fibonacci[0] = 0;
fibonacci[1] = 1;
for (i = 2; i <= 2 * my_input; i++) {
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
if (i % 2 == 0) {
sum += fibonacci[i];
}
}
System.out.printf("Even sum of fibonacci series till number %d is %d", my_input, sum);
}
}
ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า
import java.util.Scanner;
import java.io.*;
public class FibonacciSum {
public static void main(String[] args) {
int my_input = 10, j, sum = 0;
System.out.println("The value of N: ");
int[] fibonacci = new int[2 * my_input + 1];
fibonacci[0] = 0;
fibonacci[1] = 1;
sum = 0;
for (j = 2; j <= 2 * my_input; j++) {
fibonacci[j] = fibonacci[j - 1] + fibonacci[j - 2];
if (j % 2 == 0) {
sum += fibonacci[j];
}
}
System.out.printf("The even sum of fibonacci series till number %d is %d", my_input, sum);
}
}
หมายเหตุ: โค้ดนี้คำนวณฟีโบนัชชีถึงตัวที่ 2N แล้วบวกเฉพาะ index คู่ ซึ่งตรงกับค่าฟีโบนัชชีที่เป็นเลขคู่