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():

  1. 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.
  2. 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