Program řady Fibonacci v Javě pomocí Loops & Rekurze

Obsah:

Anonim

Co je Fibonacci Series?

V řadě Fibonacci je další číslo součtem předchozích dvou čísel. První dvě čísla Fibonacciho řady jsou 0 a 1.

Fibonacciho čísla se významně používají ve výpočetní studii běhu algoritmu k určení největšího společného dělitele dvou celých čísel. V aritmetice je Wythoffovo pole nekonečná matice čísel vyplývající z Fibonacciho posloupnosti.

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

Java kód pomocí For Loop

// Použití pro smyčkuveřejná třída FibonacciExample {public static void main (String [] args){// Nastavte jej na požadovaný počet prvků v řadě Fibonacciint maxNumber = 10;int previousNumber = 0;int nextNumber = 1;System.out.print ("Fibonacciho řada" + maxNumber + "čísel:");pro (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Při každé iteraci přiřazujeme druhé číslo* k prvnímu číslu a přiřazení součtu posledních dvou* čísla na druhé číslo* /int součet = předchozíČíslo + dalšíČíslo;previousNumber = nextNumber;nextNumber = součet;}}}
Výstup:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Logika programu:
  • previousNumber je inicializován na 0 a nextNumber je inicializován na 1
  • For Loop iterates through maxNumber
    • Zobrazit předchozí číslo
    • Vypočítá součet previousNumber a nextNumber
    • Aktualizuje nové hodnoty previousNumber a nextNumber

Java kód pomocí While Loop

Série Fibonacci můžete také generovat pomocí a

While smyčka v Javě.
// Použití While Loopveřejná třída FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Fibonacciho řada" + maxNumber + "čísel:");int i = 1;while (i <= maxNumber){System.out.print (previousNumber + "");int součet = předchozíČíslo + dalšíČíslo;previousNumber = nextNumber;nextNumber = součet;i ++;}}}
Výstup:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Jediným rozdílem v logice programu je použití WHILE Loop k tisku Fibonacciho čísel

Série Fibonacci na základě vstupu uživatele

// řada fibonacci na základě vstupu uživateleimport java.util.Scanner;veřejná třída FibonacciExample {public static void main (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Kolik čísel chcete ve Fibonacci:");Skener skener = nový skener (System.in);maxNumber = scanner.nextInt ();System.out.print ("Fibonacciho řada" + maxNumber + "čísel:");pro (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Při každé iteraci přiřazujeme druhé číslo* k prvnímu číslu a přiřazení součtu posledních dvou* čísla na druhé číslo* /int součet = předchozíČíslo + dalšíČíslo;previousNumber = nextNumber;nextNumber = součet;}}}
Logika programu:

Logika je stejná jako dříve. Místo pevného kódování počtu prvků, které se mají zobrazit v řadě Fibonacci, je uživatel vyzván k zadání čísla.

Kód Java pomocí rekurze

// Použití rekurzeveřejná třída FibonacciCalc {public static int fibonacciRecursion (int n) {if (n == 0) {návrat 0;}if (n == 1 || n == 2) {návrat 1;}zpětný fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Fibonacciho řada" + maxNumber + "čísel:");pro (int i = 0; i  Výstup: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Logika programu:

Rekurzivní funkce je funkce, která má schopnost sama se nazývat.

fibonacciRecursion ():

  1. Přijme vstupní číslo. Zkontroluje 0, 1, 2 a odpovídajícím způsobem vrátí 0, 1, 1, protože Fibonacciho sekvence začíná 0, 1, 1.
  2. Když je vstup n> = 3, funkce se bude volat rekurzivně. Hovor se uskuteční dvakrát. Podívejme se na příklad pro zadání 4.
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

Nyní je přidán výsledek 0 + 1 + 1 + 0 + 1 = 3