Fibonacci seeria programm Java-s, kasutades funktsiooni Loops & Rekursioon

Lang L: none (table-of-contents):

Anonim

Mis on Fibonacci seeria?

Fibonacci seerias on järgmine number kahe eelmise numbri summa. Fibonacci seeria kaks esimest numbrit on 0 ja 1.

Fibonacci numbreid kasutatakse oluliselt algoritmi arvutuslikus käitamisajas, et määrata kahe täisarvu suurim ühine jagaja. Aritmeetikas on Wythoffi massiiv Fibonacci järjestusest tulenev lõpmatu arvude maatriks.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21,… 

Java-kood For Loopi abil

// Kasutamine silmuseksavalik klass FibonacciExample {public staatiline void main (String [] args){// Määrake see Fibonacci seerias soovitud elementide arvuksint maxNumber = 10;int eelmineNumber = 0;int järgmineNumber = 1;System.out.print ("Fibonacci seeria" + maxNumber + "numbrid:");jaoks (int i = 1; i <= maxNumber; ++ i){System.out.print (eelmineNumber + "");/ * Igal iteratsioonil määrame teise numbri* esimesele numbrile ja määrates kahe viimase summa* numbrid teisele numbrile* /int summa = eelmineNumber + järgmineNumber;eelmineNumber = järgmineNumber;järgmineNumber = summa;}}}
Väljund:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programmi loogika:
  • eelmineNumber lähtestatakse väärtuseks 0 ja järgminearv lähtestatakse väärtuseks 1
  • Sest Loop kordab läbi maxNumber
    • Kuva eelmineNumber
    • Arvutab eelmise ja järgmise numbri summa
    • Värskendab eelmise ja järgmise numbri uusi väärtusi

Java-kood kasutades funktsiooni While Loop

Fibonacci seeria saate genereerida ka a abil

While silmus Java-s.
// Loopi kasutadesavalik klass FibonacciWhileExample {public staatiline void main (String [] args){int maxNumber = 10, eelmineNumber = 0, järgmineNumber = 1;System.out.print ("Fibonacci seeria" + maxNumber + "numbrid:");int i = 1;samas (i <= maxNumber){System.out.print (eelmineNumber + "");int summa = eelmineNumber + järgmineNumber;eelmineNumber = järgmineNumber;järgmineNumber = summa;i ++;}}}
Väljund:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Ainus erinevus programmi loogikas on WHILE Loopi kasutamine Fibonacci numbrite printimiseks

Fibonacci seeria põhineb kasutaja sisendil

// fibonacci seeria kasutaja sisendi põhjalimport java.util.Scanner;avalik klass FibonacciExample {public staatiline void main (String [] args){int maxNumber = 0;int eelmineNumber = 0;int järgmineNumber = 1;System.out.println ("Mitu numbrit soovite Fibonaccis:");Skanneriskanner = uus skanner (System.in);maxNumber = skanner.nextInt ();System.out.print ("Fibonacci seeria" + maxNumber + "numbrid:");jaoks (int i = 1; i <= maxNumber; ++ i){System.out.print (eelmineNumber + "");/ * Igal iteratsioonil määrame teise numbri* esimesele numbrile ja määrates kahe viimase summa* numbrid teisele numbrile* /int summa = eelmineNumber + järgmineNumber;eelmineNumber = järgmineNumber;järgmineNumber = summa;}}}
Programmi loogika:

Loogika on sama mis varem. Fibonacci seerias näidatavate elementide arvu kõvakodeerimise asemel palutakse kasutajal kirjutada number.

Java-kood rekursiooni abil

// Rekursiooni kasutamineavalik klass FibonacciCalc {public staatiline int fibonacciRecursion (int n) {kui (n == 0) {tagastus 0;}kui (n == 1 || n == 2) {tagastus 1;}tagasipöördumine fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public staatiline void main (String args []) {int maxNumber = 10;System.out.print ("Fibonacci seeria" + maxNumber + "numbrid:");for (int i = 0; i  Väljund: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programmi loogika:

Rekursiivne funktsioon on funktsioon, mida saab ise kutsuda.

fibonacciRekursioon ():

  1. Võtab sisendnumbri. Kontrollib väärtusi 0, 1, 2 ja tagastab vastavalt 0, 1, 1, kuna Fibonacci järjestus algab 0, 1, 1.
  2. Kui sisend n on> = 3, kutsub funktsioon ennast rekursiivselt. Kõnet tehakse kaks korda. Vaatame näite 4 sisestamiseks.
fibonacciRecursion (4)It will recursively call fibonacciRecursion function for values 2 and 3fibonacciRecursion (2) \\ call for value 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1fibonacciRecursion (3) \\ It will call for 1 and 2fibonacciRecursion (1) = 1fibonacciRecursion (2) \\ It will call for 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1

Nüüd lisatakse tulemus 0 + 1 + 1 + 0 + 1 = 3