Програм серије Фибонацци у Јави помоћу петље & амп; Рекурзија

Преглед садржаја:

Anonim

Шта је Фибоначијева серија?

У Фибоначијевој серији, следећи број је збир претходна два броја. Прва два броја Фибоначијевих серија су 0 и 1.

Фибоначијеви бројеви се значајно користе у рачунарском проучавању времена извођења алгоритма за одређивање највећег заједничког делиоца две целобројне вредности. У аритметици, Витхоффов низ је бесконачна матрица бројева која произилази из Фибонаццијевог низа.

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

Јава код користећи Фор Лооп

// Коришћење Фор Лоопјавни разред ФибонацциЕкампле {јавна статичка воид главна (Стринг [] аргс){// Подесите га на број елемената који желите у Фибоначијевој серијиинт макНумбер = 10;инт превиоусНумбер = 0;инт нектНумбер = 1;Систем.оут.принт ("Фибоначијева серија од" + макНумбер + "бројева:");за (инт и = 1; и <= макНумбер; ++ и){Систем.оут.принт (превиоусНумбер + "");/ * На свакој итерацији додељујемо други број* првом броју и додељивању збира последња два* бројеви до другог броја* /инт сум = превиоусНумбер + нектНумбер;превиоусНумбер = нектНумбер;нектНумбер = збир;}}}
Излаз:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Логика програма:
  • превиоусНумбер је иницијализиран на 0, а нектНумбер је иницијализиран на 1
  • Јер Лооп се превлачи maxNumber
    • Прикажите претходни број
    • Израчунава зброј превиоусНумбер и нектНумбер
    • Ажурира нове вредности превиоусНумбер и нектНумбер

Јава код користећи Вхиле Лооп

Фибоначијеве серије такође можете генерисати помоћу а

While петља у Јави.
// Коришћење вхиле Лоопјавна класа ФибонацциВхилеЕкампле {јавна статичка воид главна (Стринг [] аргс){инт макНумбер = 10, превиоусНумбер = 0, нектНумбер = 1;Систем.оут.принт ("Фибоначијева серија од" + макНумбер + "бројева:");инт и = 1;вхиле (и <= макНумбер){Систем.оут.принт (превиоусНумбер + "");инт сум = превиоусНумбер + нектНумбер;превиоусНумбер = нектНумбер;нектНумбер = збир;и ++;}}}
Излаз:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Једина разлика у програмској логици је употреба ВХИЛЕ Лооп за штампање Фибоначијевих бројева

Фибоначијева серија заснована на корисничком уносу

// серија фибоначија заснована на корисничком уносуимпорт јава.утил.Сцаннер;јавни разред ФибонацциЕкампле {јавна статичка воид главна (Стринг [] аргс){инт макНумбер = 0;инт превиоусНумбер = 0;инт нектНумбер = 1;Систем.оут.принтлн ("Колико бројева желите у Фибонацци-ју:");Скенер скенера = нови скенер (Систем.ин);макБрој = сцаннер.нектИнт ();Систем.оут.принт ("Фибоначијева серија од" + макНумбер + "бројева:");за (инт и = 1; и <= макНумбер; ++ и){Систем.оут.принт (превиоусНумбер + "");/ * На свакој итерацији додељујемо други број* првом броју и додељивању збира последња два* бројеви до другог броја* /инт сум = превиоусНумбер + нектНумбер;превиоусНумбер = нектНумбер;нектНумбер = збир;}}}
Логика програма:

Логика је иста као и раније. Уместо да тешко кодира број елемената који ће се приказати у Фибонаццијевој серији, од корисника се тражи да напише број.

Јава код користећи Рекурзију

// Коришћење рекурзијејавна класа ФибонацциЦалц {јавни статички инт фибонацциРецурсион (инт н) {ако (н == 0) {ретурн 0;}ако (н == 1 || н == 2) {ретурн 1;}врати фибонацциРецурсион (н-2) + фибонацциРецурсион (н-1);}публиц статиц воид маин (Стринг аргс []) {инт макНумбер = 10;Систем.оут.принт ("Фибоначијева серија од" + макНумбер + "бројева:");фор (инт и = 0; и <макНумбер; и ++) {Систем.оут.принт (фибонацциРецурсион (и) + "");}}}
Излаз:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Логика програма:

Рекурзивна функција је она која има способност да се сама позове.

фибонацциРецурсион ():

  1. Узима улазни број. Проверава 0, 1, 2 и у складу с тим враћа 0, 1, 1 јер Фибоначијев низ започиње са 0, 1, 1.
  2. Када је улаз н> = 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