Програма от серия Фибоначи в Java с помощта на Loops & Рекурсия

Съдържание:

Anonim

Какво е серия на Фибоначи?

В поредицата на Фибоначи следващото число е сумата от предишните две числа. Първите две числа от поредицата на Фибоначи са 0 и 1.

Числата на Фибоначи се използват значително при изчислителното време на изследване на алгоритъма за определяне на най-големия общ делител на две цели числа. В аритметиката масивът Wythoff е безкрайна матрица от числа, получени от последователността на Фибоначи.

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

Java код, използващ For Loop

// Използване за цикълпубличен клас FibonacciExample {публична статична 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;previousNumber = nextNumber;nextNumber = сума;}}}
Изход:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Логика на програмата:
  • previousNumber се инициализира на 0, а nextNumber се инициализира на 1
  • За Loop итерации през maxNumber
    • Показване на предишния номер
    • Изчислява сумата от previousNumber и nextNumber
    • Актуализира нови стойности на previousNumber и nextNumber

Java код, използвайки While Loop

Можете също така да генерирате серия на Фибоначи, като използвате

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

Единствената разлика в програмната логика е използването на WHILE Loop за отпечатване на числа на Фибоначи

Серия Фибоначи, базирана на потребителския вход

// Фибоначи серия въз основа на потребителския входимпортиране на java.util.Scanner;публичен клас FibonacciExample {публична статична 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;previousNumber = nextNumber;nextNumber = сума;}}}
Логика на програмата:

Логиката е същата като по-рано. Вместо да кодира твърдо броя на елементите, които да се показват в серията Фибоначи, потребителят е помолен да напише номер.

Java код, използващ рекурсия

// Използване на рекурсияпубличен клас FibonacciCalc {публичен статичен int fibonacciRecursion (int n) {ако (n == 0) {връщане 0;}ако (n == 1 || n == 2) {връщане 1;}връщане fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}публична статична void main (String args []) {int maxNumber = 10;System.out.print ("Поредица на Фибоначи на" + maxNumber + "числа:");за (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