Fibonacci Series program Java-ban a hurkok és amp; Rekurzió

Tartalomjegyzék:

Anonim

Mi a Fibonacci sorozat?

A Fibonacci sorozatban a következő szám az előző két szám összege. A Fibonacci sorozat első két száma 0 és 1.

A Fibonacci-számokat jelentősen felhasználják az algoritmus számítási futásidejű vizsgálatában két egész szám legnagyobb közös osztójának meghatározására. Az aritmetikában a Wythoff-tömb a Fibonacci-szekvenciából származó végtelen számmátrix.

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

Java kód a For Loop segítségével

// A hurok használatanyilvános osztály FibonacciExample {public static void main (String [] érvel){// Állítsa be a kívánt elemszámra a Fibonacci sorozatbanint maxNumber = 10;int előző szám = 0;int következő szám = 1;System.out.print ("Fibonacci" + maxNumber + "számok" sorozata: ");for (int i = 1; i <= maxNumber; ++ i){System.out.print (előzőNumber + "");/ * Minden iterációnál hozzárendelünk egy második számot* az első számhoz, és hozzárendeljük az utolsó kettő összegét* számok a második számig* /int összeg = előző szám + következő szám;előző szám = következő szám;következő szám = összeg;}}}
Kimenet:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programlogika:
  • Az előző szám 0-ra, a következő szám pedig 1-re inicializálódik
  • Mert a hurok végig iterál maxNumber
    • Az előző szám megjelenítése
    • Kiszámítja az előző és a következő szám összegét
    • Frissíti az előzőNumber és a NextNumber új értékeit

Java kód a While Loop használatával

A Fibonacci sorozatokat a

While hurok a Java-ban.
// A hurok használatanyilvános osztály FibonacciWhileExample {public static void main (String [] érvel){int maxNumber = 10, előzőNumber = 0, nextNumber = 1;System.out.print ("Fibonacci" + maxNumber + "számok" sorozata: ");int i = 1;míg (i <= maxNumber){System.out.print (előzőNumber + "");int összeg = előző szám + következő szám;előző szám = következő szám;következő szám = összeg;i ++;}}}
Kimenet:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Az egyetlen különbség a program logikájában a WHILE Loop használata a Fibonacci számok kinyomtatásához

Fibonacci sorozat a felhasználói bemenet alapján

// fibonacci sorozat a felhasználói bemenet alapjánimport java.util.Scanner;nyilvános osztály FibonacciExample {public static void main (String [] érvel){int maxNumber = 0;int előző szám = 0;int következő szám = 1;System.out.println ("Hány számot szeretne a Fibonacciban:");Szkenner szkenner = új szkenner (System.in);maxNumber = szkenner.nextInt ();System.out.print ("Fibonacci" + maxNumber + "számok" sorozata: ");for (int i = 1; i <= maxNumber; ++ i){System.out.print (előzőNumber + "");/ * Minden iterációnál hozzárendelünk egy második számot* az első számhoz, és hozzárendeljük az utolsó kettő összegét* számok a második számig* /int összeg = előző szám + következő szám;előző szám = következő szám;következő szám = összeg;}}}
Programlogika:

A logika megegyezik a korábbiakkal. A Fibonacci sorozatban megjelenítendő elemek számának kemény kódolása helyett a felhasználót arra kérik, hogy írjon számot.

Java kód a Rekurzió használatával

// Rekurzió használatanyilvános osztály FibonacciCalc {public static int fibonacciRecursion (int n) {ha (n == 0) {visszatér 0;}ha (n == 1 || n == 2) {visszatér 1;}visszatérő fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Fibonacci" + maxNumber + "számok" sorozata: ");for (int i = 0; i  Kimenet: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programlogika:

A rekurzív függvény képes felhívni önmagát.

fibonacciRecursion ():

  1. Beviteli számot vesz be. Ellenőrzi a 0, 1, 2 értéket, és ennek megfelelően 0, 1, 1 értéket ad vissza, mert a Fibonacci-szekvencia 0, 1, 1-gyel kezdődik.
  2. Ha az n bemenet értéke> = 3, a függvény rekurzívan hívja magát. A hívás két alkalommal történik. Nézzük meg a 4-es bemenet példáját.
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

Most az eredmény hozzáadódik 0 + 1 + 1 + 0 + 1 = 3