Fibonacci Series Program i Java ved hjælp af Loops & Rekursion

Indholdsfortegnelse:

Anonim

Hvad er Fibonacci-serien?

I Fibonacci-serien er næste tal summen af ​​de foregående to tal. De første to numre i Fibonacci-serien er 0 og 1.

Fibonacci-numrene bruges signifikant i den beregningsmæssige run-time-undersøgelse af algoritme til at bestemme den største fælles divisor af to heltal. I aritmetik er Wythoff-arrayet en uendelig matrix af tal, der stammer fra Fibonacci-sekvensen.

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

Java-kode ved hjælp af For Loop

// Brug af For Loopoffentlig klasse FibonacciExample {offentlig statisk ugyldig hoved (String [] args){// Indstil det til det antal elementer, du vil have i Fibonacci-serienint 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 (forrigeNummer + "");/ * På hver iteration tildeler vi andet nummer* til det første tal og tildele summen af ​​de sidste to* tal til det andet nummer* /int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = sum;}}}
Produktion:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programlogik:
  • previousNumber initialiseres til 0 og nextNumber initialiseres til 1
  • For Loop gentager det sig maxNumber
    • Vis det forrige nummer
    • Beregner summen af ​​previousNumber og nextNumber
    • Opdaterer nye værdier for previousNumber og nextNumber

Java-kode ved hjælp af While Loop

Du kan også generere Fibonacci-serien ved hjælp af en

While loop i Java.
// Brug While Loopoffentlig klasse FibonacciWhileExample {offentlig statisk ugyldig hoved (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");int i = 1;mens (i <= maxNumber){System.out.print (forrigeNummer + "");int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = sum;i ++;}}}
Produktion:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Den eneste forskel i programlogikken er brugen af ​​WHILE Loop til at udskrive Fibonacci-numre

Fibonacci-serien baseret på brugerinput

// Fibonacci-serier baseret på brugerinputimportere java.util.Scanner;offentlig klasse FibonacciExample {offentlig statisk ugyldig hoved (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Hvor mange numre du vil have i Fibonacci:");Scannerscanner = ny scanner (System.in);maxNumber = scanner.nextInt ();System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");for (int i = 1; i <= maxNumber; ++ i){System.out.print (forrigeNummer + "");/ * På hver iteration tildeler vi andet nummer* til det første tal og tildele summen af ​​de sidste to* tal til det andet nummer* /int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = sum;}}}
Programlogik:

Logikken er den samme som tidligere. I stedet for at hårdkode antallet af elementer, der skal vises i Fibonacci-serien, bliver brugeren bedt om at skrive nummer.

Java-kode ved hjælp af Recursion

// Brug af rekursionoffentlig klasse FibonacciCalc {offentlig statisk int retracementRecursion (int n) {hvis (n == 0) {returnere 0;}hvis (n == 1 || n == 2) {returnere 1;}returnere retracementRecursion (n-2) + FibonacciRecursion (n-1);}offentlig statisk ugyldig hoved (String args []) {int maxNumber = 10;System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");for (int i = 0; i  Produktion: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programlogik:

En rekursiv funktion er en, der har evnen til at kalde sig selv.

FibonacciRecursion ():

  1. Tager et inputnummer. Kontrollerer for 0, 1, 2 og returnerer 0, 1, 1 i overensstemmelse hermed, fordi Fibonacci-sekvensen starter med 0, 1, 1.
  2. Når input n er> = 3, kalder funktionen sig rekursivt. Opkaldet udføres to gange. Lad os se eksempel på input på 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

Nu tilføjes resultatet 0 + 1 + 1 + 0 + 1 = 3