Ряд Фібоначчі в Java за допомогою програми рекурсії та циклів

Що таке ряд Фібоначчі Java?

A Серія Фібоначчі in Java це ряд чисел, у якому наступне число є сумою двох попередніх чисел. Перші два числа ряду Фібоначчі дорівнюють 0 і 1. Числа Фібоначчі значною мірою використовуються під час обчислювального дослідження алгоритму для визначення найбільшого спільного дільника двох цілих чисел.

В арифметиці масив Вітгофа — це нескінченна матриця чисел, отримана з послідовності Фібоначчі.

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

Програма рядів Фібоначчі в Java за допомогою циклу For

//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;
	        }
	}
}

вихід:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Логіка програми:

  • previousNumber ініціалізується 0, а nextNumber ініціалізується 1
  • Цикл Фібоначчі повторюється maxNumber
    • Відобразити попередній номер
    • Обчислює суму попередніх і наступних чисел
    • Оновлює нові значення попередніх чисел і наступних чисел

Програма рядів Фібоначчі в Java за допомогою циклу While

Ви також можете генерувати Java Ряд Фібоначчі з використанням a While петля в 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++;
	        }
 
	}
 
}

вихід:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Єдиною відмінністю в логіці програми є використання Цикл WHILE друкувати Фібоначчі Numbers

Ряд Фібоначчі на основі даних користувача

//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;
	        }
 
	}
 
}

Логіка програми:
Логіка така ж, як і раніше. Замість жорсткого кодування кількості елементів для відображення Java Ряд Фібоначчі, користувача просять написати число.

Ряд Фібоначчі з використанням рекурсії в Java

Нижче наведено програму ряду Фібоначчі в Java за допомогою рекурсії:

//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) +" ");
		}
	}
}


вихід:

Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34

Логіка програми:

Рекурсивна функція — це така, яка має можливість викликати саму себе.

fibonacciRecursion():

  1. Команда Java Функція рекурсії Фібоначчі приймає вхідне число. Перевіряє 0, 1, 2 і повертає 0, 1, 1 відповідно, оскільки послідовність Фібоначчі в Java починається з 0, 1, 1.
  2. Якщо вхід n >=3, функція викличе сама себе рекурсивно. Виклик здійснюється два рази. Давайте подивимося на ряд Фібоначчі Java використання прикладу рекурсії для введення 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

Тепер результат додається 0+1+1+0+1=3