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

Зміст:

Anonim

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

У рядах Фібоначчі наступне число - це сума попередніх двох чисел. Перші два числа рядів Фібоначчі дорівнюють 0 і 1.

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

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

Код Java за допомогою For Loop

// Використання для циклупублічний клас 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 сума = попереднє число + наступне число;попереднє число = наступне число;nextNumber = сума;}}}
Вихід:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Логіка програми:
  • previousNumber ініціалізується до 0, а nextNumber ініціалізується до 1
  • Для Loop переглядається maxNumber
    • Відображення попереднього числа
    • Обчислює суму попереднього і наступного числа
    • Оновлення нових значень previousNumber та nextNumber

Код Java за допомогою While Loop

Ви також можете створити Серію Фібоначчі за допомогою

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

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

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

// ряд Фібоначчі на основі вводу користувачаімпортувати java.util.Scanner;публічний клас 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 сума = попереднє число + наступне число;попереднє число = наступне число;nextNumber = сума;}}}
Логіка програми:

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

Код Java за допомогою рекурсії

// Використання рекурсіїпублічний клас FibonacciCalc {public static int fibonacciRecursion (int n) {якщо (n == 0) {повернути 0;}якщо (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