Fibonacci-serien i Java ved hjælp af Recursion og Loops Program
Hvad er Fibonacci-serien i Java?
A Fibonacci-serien in Java er en række tal, hvor det næste tal er summen af de to foregående tal. De første to tal i Fibonacci-serien er 0 og 1. Fibonacci-tallene er væsentligt brugt i den beregningsmæssige run-time undersøgelse af en 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, ...
Fibonacci-seriens program i Java bruger For Loop
//Using For Loop public class FibonacciExample { public static void main(String[] args) { // Set it to the number of elements you want in the Fibonacci Series int 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(previousNumber+" "); /* On each iteration, we are assigning second number * to the first number and assigning the sum of last two * numbers to the second number */ int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; } } }
Output:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Program logik:
- previousNumber initialiseres til 0 og nextNumber initialiseres til 1
- Fibonacci For Loop gentager sig
maxNumber
- Vis det forrige nummer
- Beregner summen af forrigeNumber og næsteNumber
- Opdaterer nye værdier for previousNumber og nextNumber
Fibonacci-seriens program i Java bruger While Loop
Du kan også generere Java Fibonacci-serien ved hjælp af en While
sløjfe ind Java
//Using While Loop public class 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; while(i <= maxNumber) { System.out.print(previousNumber+" "); int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; i++; } } }
Output:
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 at udskrive Fibonacci Numbers
Fibonacci-serien baseret på brugerinput
//fibonacci series based on the user input import java.util.Scanner; public class FibonacciExample { public static void main(String[] args) { int maxNumber = 0; int previousNumber = 0; int nextNumber = 1; System.out.println("How many numbers you want in Fibonacci:"); Scanner scanner = new Scanner(System.in); maxNumber = scanner.nextInt(); System.out.print("Fibonacci Series of "+maxNumber+" numbers:"); for (int i = 1; i <= maxNumber; ++i) { System.out.print(previousNumber+" "); /* On each iteration, we are assigning second number * to the first number and assigning the sum of last two * numbers to the second number */ int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; } } }
Program logik:
Logikken er den samme som tidligere. I stedet for at hardkode antallet af elementer, der skal vises i Java Fibonacci-serien, bliver brugeren bedt om at skrive nummer.
Fibonacci-serien, der bruger rekursion i Java
Nedenfor er et program i Fibonacci-serien Java ved hjælp af rekursion:
//Using Recursion public class FibonacciCalc{ public static int fibonacciRecursion(int n){ if(n == 0){ return 0; } if(n == 1 || n == 2){ return 1; } return 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 < maxNumber; i++){ System.out.print(fibonacciRecursion(i) +" "); } } }
Output:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Program logik:
En rekursiv funktion er en funktion, der har evnen til at kalde sig selv.
fibonacciRecursion():
- Java Fibonacci-rekursionsfunktionen tager et inputtal. Kontrollerer for 0, 1, 2 og returnerer 0, 1, 1 i overensstemmelse hermed, fordi Fibonacci-sekvensen i Java starter med 0, 1, 1.
- Når input n er >=3, kalder funktionen sig selv rekursivt. Opkaldet foretages to gange. Lad os se Fibonacci-serien ind Java Brug af rekursionseksempel til input af 4.
fibonacciRecursion (4) It will recursively call fibonacciRecursion function for values 2 and 3 fibonacciRecursion (2) \\ call for value 0 and 1 fibonacciRecursion (0) = 0 fibonacciRecursion (1) = 1 fibonacciRecursion (3) \\ It will call for 1 and 2 fibonacciRecursion (1) = 1 fibonacciRecursion (2) \\ It will call for 0 and 1 fibonacciRecursion (0) = 0 fibonacciRecursion (1) = 1
Nu tilføjes resultatet 0+1+1+0+1=3