Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java หาผลรวมเลขคู่ของอนุกรมฟีโบนัชชี (Even Sum of Fibonacci)

ในบทความนี้ เราจะเรียนรู้วิธีหาผลรวมของเลขคู่ในอนุกรมฟีโบนัชชีถึงตัวที่ 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

อัลกอริทึม

  1. เริ่มต้นโปรแกรม
  2. ประกาศตัวแปร: my_input, i, sum
  3. รับค่า N จากผู้ใช้ หรือกำหนดค่าไว้ล่วงหน้า
  4. สร้างอาร์เรย์เก็บค่าฟีโบนัชชี ขนาด 2×N+1
  5. คำนวณค่าฟีโบนัชชีและบวกเฉพาะค่าที่ index เป็นเลขคู่ (i % 2 == 0)
  6. แสดงผลลัพธ์
  7. จบโปรแกรม

ตัวอย่างที่ 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 คู่ ซึ่งตรงกับค่าฟีโบนัชชีที่เป็นเลขคู่