Fibonacci Series Program i Java ved hjelp av Loops & Rekursjon

Innholdsfortegnelse:

Anonim

Hva er Fibonacci-serien?

I Fibonacci-serien er neste nummer summen av de to foregående tallene. De to første tallene i Fibonacci-serien er 0 og 1.

Fibonacci-tallene brukes betydelig i beregningstiden for algoritme for å bestemme den største fellesdeleren av to heltall. I aritmetikk er Wythoff-matrisen en uendelig matrise av tall som skyldes Fibonacci-sekvensen.

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

Java-kode ved hjelp av For Loop

// Bruke For Loopoffentlig klasse FibonacciExample {public static void main (String [] args){// Sett den til antall elementer du vil ha 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 iterasjon tildeler vi andre nummer* til det første tallet og tildele summen av de to siste* tall til andre nummer* /int sum = previousNumber + nextNumber;previousNumber = nesteNummer;nextNumber = sum;}}}
Produksjon:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programlogikk:
  • previousNumber initialiseres til 0 og nextNumber initialiseres til 1
  • For Loop går det gjennom maxNumber
    • Vis forrige nummer
    • Beregner summen av previousNumber og nextNumber
    • Oppdaterer nye verdier av previousNumber og nextNumber

Java-kode ved bruk av While Loop

Du kan også generere Fibonacci-serien ved hjelp av a

While loop i Java.
// Bruke While Loopoffentlig klasse FibonacciWhileExample {public static void main (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 = nesteNummer;nextNumber = sum;i ++;}}}
Produksjon:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Den eneste forskjellen i programlogikken er bruk av WHILE Loop for å skrive ut Fibonacci-tall

Fibonacci-serien basert på brukerinngangen

// Fibonacci-serier basert på brukerinndataimportere java.util.Scanner;offentlig klasse FibonacciExample {public static void main (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Hvor mange tall du vil ha i Fibonacci:");Skannerskanner = ny skanner (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 iterasjon tildeler vi andre nummer* til det første tallet og tildele summen av de to siste* tall til andre nummer* /int sum = previousNumber + nextNumber;previousNumber = nesteNummer;nextNumber = sum;}}}
Programlogikk:

Logikken er den samme som tidligere. I stedet for å hardkode antall elementer som skal vises i Fibonacci-serien, blir brukeren bedt om å skrive nummer.

Java-kode ved hjelp av Recursion

// Bruke rekursjonoffentlig klasse FibonacciCalc {offentlig statisk int retracementRecursion (int n) {hvis (n == 0) {retur 0;}hvis (n == 1 || n == 2) {retur 1;}retur FibonacciRecursion (n-2) + FibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");for (int i = 0; i  Produksjon: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programlogikk:

En rekursiv funksjon er en som har evnen til å kalle seg selv.

FibonacciRecursion ():

  1. Tar et inndata nummer. Sjekker for 0, 1, 2 og returnerer 0, 1, 1 tilsvarende fordi Fibonacci-sekvensen starter med 0, 1, 1.
  2. Når inngang n er> = 3, vil funksjonen kalle seg rekursivt. Samtalen blir utført to ganger. La oss 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

Nå er resultatet lagt til 0 + 1 + 1 + 0 + 1 = 3