Série Fibonacci in Java pomocí programu Rekurze a smyčky
V čem je Fibonacci Series Java?
A Fibonacciho série in Java je řada čísel, ve které 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čtové run-time studii 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, ...
Program Fibonacci Series v Java pomocí 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;
}
}
}
Výstup:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programová logika:
- previousNumber je inicializováno na 0 a nextNumber je inicializováno na 1
- Fibonacci For Loop iteruje skrz
maxNumber - Zobrazit předchozí číslo
- Vypočítá součet previousNumber a nextNumber
- Aktualizuje nové hodnoty previousNumber a nextNumber
Program Fibonacci Series v Java pomocí While Loop
Můžete také generovat Java Fibonacciho řada pomocí a While smyčka dovnitř 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++;
}
}
}
Výstup:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Jediný rozdíl v logice programu je použití WHILE Loop vytisknout Fibonacciho Numbers
Fibonacci řada na základě uživatelského vstupu
//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;
}
}
}
Programová logika:
Logika je stejná jako dříve. Místo pevného kódování počtu prvků, které se mají zobrazit Java Fibonacci Series, uživatel je požádán o zapsání čísla.
Fibonacciho řada využívající rekurzi v Java
Níže je uveden program řady Fibonacci Java pomocí rekurze:
//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) +" ");
}
}
}
Výstup:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programová logika:
Rekurzivní funkce je taková, která má schopnost volat sama sebe.
FibonacciRecursion():
- Jedno Java Fibonacciho rekurzní funkce bere vstupní číslo. Zkontroluje 0, 1, 2 a odpovídajícím způsobem vrátí 0, 1, 1, protože Fibonacciho sekvence v Java začíná 0, 1, 1.
- Když je vstup n >=3, funkce se bude volat rekurzivně. Hovor se provede dvakrát. Podívejme se na sérii Fibonacci Java pomocí příkladu rekurze pro vstup 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
Nyní je výsledek přidán 0+1+1+0+1=3
