Fibonaccijev niz u Java pomoću programa rekurzije i petlji
U čemu je Fibonaccijev niz Java?
A Fibonaccijeva serija in Java je niz brojeva u kojem je sljedeći broj zbroj prethodna dva broja. Prva dva broja Fibonaccijevog niza su 0 i 1. Fibonaccijevi brojevi značajno se koriste u proračunskoj studiji vremena izvođenja algoritma za određivanje najvećeg zajedničkog djelitelja dvaju cijelih brojeva.
U aritmetici, Wythoffov niz je beskonačna matrica brojeva koja proizlazi iz Fibonaccijevog niza.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
Program Fibonaccijevog niza u Java koristeći 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; } } }
Izlaz:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programska logika:
- previousNumber je inicijaliziran na 0, a nextNumber je inicijaliziran na 1
- Fibonaccijeva petlja ponavlja
maxNumber
- Prikaz prethodnog broja
- Izračunava zbroj prethodnog broja i sljedećeg broja
- Ažurira nove vrijednosti za prethodniBroj i sljedećiBroj
Program Fibonaccijevog niza u Java pomoću while petlje
Također možete generirati Java Fibonaccijev niz koji koristi a While
petlja unutra Java
//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++; } } }
Izlaz:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Jedina razlika u programskoj logici je korištenje WHILE petlja za ispis Fibonaccija Numbers
Fibonaccijev niz na temelju korisničkog unosa
//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; } } }
Programska logika:
Logika je ista kao i ranije. Umjesto tvrdog kodiranja broja elemenata za prikaz Java Fibonacci serija, od korisnika se traži da napiše broj.
Fibonaccijev niz koji koristi rekurziju Java
Ispod je program Fibonaccijevog niza u Java koristeći rekurziju:
//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) +" "); } } }
Izlaz:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programska logika:
Rekurzivna funkcija je ona koja ima sposobnost pozivanja same sebe.
fibonaccijeva rekurzija():
- The Java Fibonaccijeva rekurzivna funkcija uzima ulazni broj. Provjerava 0, 1, 2 i prema tome vraća 0, 1, 1 jer Fibonaccijev niz u Java počinje s 0, 1, 1.
- Kada je unos n >=3, funkcija će samu sebe pozvati rekurzivno. Poziv se obavlja dva puta. Pogledajmo Fibonaccijev niz Java koristeći primjer rekurzije za unos 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
Sada se rezultat dodaje 0+1+1+0+1=3