Deret Fibonacci di Java menggunakan Program Rekursi dan Loop
Apa itu Deret Fibonacci di Java?
Seri Fibonacci di Jawa adalah deretan angka dimana angka berikutnya adalah jumlah dari dua angka sebelumnya. Dua angka pertama dari deret Fibonacci adalah 0 dan 1. Angka-angka Fibonacci secara signifikan digunakan dalam studi komputasi run-time dari suatu algoritma untuk menentukan pembagi persekutuan terbesar dari dua bilangan bulat.
Dalam aritmatika, larik Wythoff adalah matriks bilangan tak berhingga yang dihasilkan dari barisan Fibonacci.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
- Apa itu Deret Fibonacci di Java?
- Program Deret Fibonacci di Java menggunakan For Loop
- Program Deret Fibonacci di Java menggunakan While Loop
- Deret Fibonacci Menggunakan Rekursi di Java
Program Deret Fibonacci di Java menggunakan For Loop
//Using For Loop
public class FibonacciExample {
public static void main(String[] args)
{
// Set it to the number of elements you want in the Fibonacci Series
int maxNumber = 10;
int previousNumber = 0;
int nextNumber = 1;
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
for (int i = 1; i <= maxNumber; ++i)
{
System.out.print(previousNumber+" ");
/* On each iteration, we are assigning second number
* to the first number and assigning the sum of last two
* numbers to the second number
*/
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
}
}
}
Keluaran:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Logika Program:
- previousNumber diinisialisasi ke 0 dan nextNumber diinisialisasi ke 1
- Fibonacci For Loop berulang melalui
maxNumber
- Menampilkan Nomor sebelumnya
- Menghitung jumlah dari PreviousNumber dan nextNumber
- Memperbarui nilai baru dari PreviousNumber dan nextNumber
Program Deret Fibonacci di Java menggunakan While Loop
Anda juga dapat membuat Seri Java Fibonacci menggunakan While
loop di Jawa.
//Using While Loop
public class FibonacciWhileExample {
public static void main(String[] args)
{
int maxNumber = 10, previousNumber = 0, nextNumber = 1;
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
int i=1;
while(i <= maxNumber)
{
System.out.print(previousNumber+" ");
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
i++;
}
}
}
Keluaran:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Satu-satunya perbedaan dalam logika program adalah penggunaan WHILE Loop untuk mencetak Bilangan Fibonacci
Deret Fibonacci Berdasarkan Input Pengguna
//fibonacci series based on the user input
import java.util.Scanner;
public class FibonacciExample {
public static void main(String[] args)
{
int maxNumber = 0;
int previousNumber = 0;
int nextNumber = 1;
System.out.println("How many numbers you want in Fibonacci:");
Scanner scanner = new Scanner(System.in);
maxNumber = scanner.nextInt();
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
for (int i = 1; i <= maxNumber; ++i)
{
System.out.print(previousNumber+" ");
/* On each iteration, we are assigning second number
* to the first number and assigning the sum of last two
* numbers to the second number
*/
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
}
}
}
Logika Program:
Logikanya sama seperti sebelumnya. Alih-alih melakukan hardcoding jumlah elemen untuk ditampilkan di Java Fibonacci Series, pengguna diminta untuk menulis angka.
Deret Fibonacci Menggunakan Rekursi di Java
Di bawah ini adalah program deret Fibonacci di Java menggunakan rekursi:
//Using Recursion
public class FibonacciCalc{
public static int fibonacciRecursion(int n){
if(n == 0){
return 0;
}
if(n == 1 || n == 2){
return 1;
}
return fibonacciRecursion(n-2) + fibonacciRecursion(n-1);
}
public static void main(String args[]) {
int maxNumber = 10;
System.out.print("Fibonacci Series of "+maxNumber+" numbers: ");
for(int i = 0; i < maxNumber; i++){
System.out.print(fibonacciRecursion(i) +" ");
}
}
}
Keluaran:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Logika Program:
Fungsi rekursif adalah fungsi yang memiliki kemampuan untuk memanggil dirinya sendiri.
fibonacciRecursion():
- Fungsi rekursi Java Fibonacci mengambil nomor input. Memeriksa 0, 1, 2 dan mengembalikan 0, 1, 1 sesuai karena deret Fibonacci di Java dimulai dengan 0, 1, 1.
- Ketika input n adalah>=3, Fungsi akan memanggil dirinya sendiri secara rekursif. Pemanggilan dilakukan dua kali. Mari kita lihat Deret Fibonacci di Java menggunakan contoh rekursi untuk input 4.
fibonacciRecursion (4)
It will recursively call fibonacciRecursion function for values 2 and 3
fibonacciRecursion (2) \\ call for value 0 and 1
fibonacciRecursion (0) = 0
fibonacciRecursion (1) = 1
fibonacciRecursion (3) \\ It will call for 1 and 2
fibonacciRecursion (1) = 1
fibonacciRecursion (2) \\ It will call for 0 and 1
fibonacciRecursion (0) = 0
fibonacciRecursion (1) = 1
Sekarang hasilnya ditambahkan 0+1+1+0+1=3