Fibonacci-seriens program i Java med hjälp av Loops & Rekursion

Innehållsförteckning:

Anonim

Vad är Fibonacci-serien?

I Fibonacci-serien är nästa nummer summan av de två föregående siffrorna. De två första siffrorna i Fibonacci-serien är 0 och 1.

Fibonacci-siffrorna används signifikant i den beräknade runtime-studien av algoritm för att bestämma den största gemensamma delaren av två heltal. I aritmetik är Wythoff-arrayen en oändlig matris av tal som härrör från Fibonacci-sekvensen.

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

Java-kod med For Loop

// Använda For Loopoffentlig klass FibonacciExempel {public static void main (String [] args){// Ställ in det till antalet element du vill ha i Fibonacci-serienint maxNumber = 10;int previousNumber = 0;int nextNumber = 1;System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");för (int i = 1; i <= maxNumber; ++ i){System.out.print (tidigareNummer + "");/ * För varje iteration tilldelar vi andra nummer* till det första numret och tilldela summan av de två sista* nummer till det andra numret* /int sum = föregåendeNummer + nästaNummer;previousNumber = nästaNummer;nästaNummer = summa;}}}
Produktion:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programlogik:
  • previousNumber initialiseras till 0 och nextNumber initialiseras till 1
  • För Loop itererar igenom maxNumber
    • Visa föregående nummer
    • Beräknar summan av previousNumber och nextNumber
    • Uppdaterar nya värden för previousNumber och nextNumber

Java-kod med While Loop

Du kan också generera Fibonacci-serien med hjälp av a

While loop i Java.
// Använda While Loopoffentlig klass 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;medan (i <= maxNumber){System.out.print (tidigareNummer + "");int sum = föregåendeNummer + nästaNummer;previousNumber = nästaNummer;nästaNummer = summa;i ++;}}}
Produktion:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Den enda skillnaden i programlogiken är användningen av WHILE Loop för att skriva ut Fibonacci-nummer

Fibonacci-serien baserad på användarinmatningen

// Fibonacci-serien baserad på användarinmatningenimportera java.util.Scanner;offentlig klass FibonacciExempel {public static void main (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Hur många nummer du vill ha i Fibonacci:");Skannerskanner = ny skanner (System.in);maxNumber = scanner.nextInt ();System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");för (int i = 1; i <= maxNumber; ++ i){System.out.print (tidigareNummer + "");/ * För varje iteration tilldelar vi andra nummer* till det första numret och tilldela summan av de två sista* nummer till det andra numret* /int sum = föregåendeNummer + nästaNummer;previousNumber = nästaNummer;nästaNummer = summa;}}}
Programlogik:

Logiken är densamma som tidigare. Istället för att hårdkoda antalet element som ska visas i Fibonacci-serien uppmanas användaren att skriva nummer.

Java-kod med Recursion

// Använda rekursionoffentlig klass FibonacciCalc {offentlig statisk int FibreRecursion (int n) {om (n == 0) {returnera 0;}om (n == 1 || n == 2) {retur 1;}returnera retracementRecursion (n-2) + FibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Fibonacci Series of" + maxNumber + "numbers:");för (int i = 0; i  Produktion: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programlogik:

En rekursiv funktion är en som har förmågan att kalla sig själv.

FibonacciRecursion ():

  1. Tar ett inmatningsnummer. Kontrollerar för 0, 1, 2 och returnerar 0, 1, 1 därför att Fibonacci-sekvensen börjar med 0, 1, 1.
  2. När ingång n är> = 3 kommer funktionen att kalla sig rekursivt. Samtalet görs två gånger. Låt oss se exempel för inmatning av 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 läggs resultatet till 0 + 1 + 1 + 0 + 1 = 3