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 34Programlogika:
- 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; iKimenet: Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34Programlogika:A rekurzív függvény képes felhívni önmagát.
fibonacciRecursion ():
- 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.
- 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) = 1Most az eredmény hozzáadódik 0 + 1 + 1 + 0 + 1 = 3