Программа рядов Фибоначчи на Java с использованием Loops & Рекурсия

Содержание:

Anonim

Что такое ряд Фибоначчи?

В ряду Фибоначчи следующее число - это сумма двух предыдущих чисел. Первые два числа ряда Фибоначчи - это 0 и 1.

Числа Фибоначчи в значительной степени используются при вычислительном исследовании алгоритма во время выполнения для определения наибольшего общего делителя двух целых чисел. В арифметике массив Wythoff представляет собой бесконечную матрицу чисел, полученную в результате последовательности Фибоначчи.

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

Код Java с использованием цикла For Loop

// Использование цикла Forpublic class FibonacciExample {public static void main (String [] args){// Устанавливаем количество элементов, которое вы хотите в Серии Фибоначчиint maxNumber = 10;int previousNumber = 0;int nextNumber = 1;System.out.print ("Ряд Фибоначчи" + maxNumber + "чисел:");для (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * На каждой итерации мы присваиваем второй номер* к первому числу и присваивая сумму двух последних* цифры ко второму номеру* /int sum = предыдущее число + следующее число;previousNumber = nextNumber;nextNumber = сумма;}}}
Выход:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Логика программы:
  • previousNumber инициализируется значением 0, а nextNumber инициализируется значением 1
  • Цикл For выполняет итерацию maxNumber
    • Показать предыдущий номер
    • Вычисляет сумму previousNumber и nextNumber
    • Обновляет новые значения previousNumber и nextNumber

Код Java с использованием цикла While Loop

Вы также можете сгенерировать ряды Фибоначчи, используя

While цикл в Java.
// Использование цикла whileоткрытый класс FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Ряд Фибоначчи" + maxNumber + "чисел:");int я = 1;в то время как (я <= maxNumber){System.out.print (previousNumber + "");int sum = предыдущее число + следующее число;previousNumber = nextNumber;nextNumber = сумма;i ++;}}}
Выход:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Единственное отличие в логике программы - это использование цикла WHILE для печати чисел Фибоначчи.

Ряд Фибоначчи, основанный на вводе данных пользователем

// ряд Фибоначчи на основе пользовательского ввода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 ("Сколько чисел вы хотите в Фибоначчи:");Сканер сканер = новый Сканер (System.in);maxNumber = scanner.nextInt ();System.out.print ("Ряд Фибоначчи" + maxNumber + "чисел:");для (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * На каждой итерации мы присваиваем второй номер* к первому числу и присваивая сумму двух последних* цифры ко второму номеру* /int sum = предыдущее число + следующее число;previousNumber = nextNumber;nextNumber = сумма;}}}
Логика программы:

Логика такая же, как и раньше. Вместо жесткого кодирования количества элементов, отображаемых в рядах Фибоначчи, пользователя просят ввести число.

Код Java с использованием рекурсии

// Использование рекурсииpublic class FibonacciCalc {public static int fibonacciRecursion (int n) {if (n == 0) {возврат 0;}if (n == 1 || n == 2) {возврат 1;}вернуть fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Ряд Фибоначчи" + maxNumber + "чисел:");for (int i = 0; i  Выход: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Логика программы:

Рекурсивная функция - это функция, которая может вызывать сама себя.

fibonacciRecursion ():

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

Теперь результат складывается 0 + 1 + 1 + 0 + 1 = 3