Program serii Fibonacciego w Javie przy użyciu pętli & Rekursja

Spisie treści:

Anonim

Co to jest seria Fibonacciego?

W szeregu Fibonacciego następna liczba jest sumą dwóch poprzednich liczb. Pierwsze dwie liczby szeregu Fibonacciego to 0 i 1.

Liczby Fibonacciego są istotnie wykorzystywane w obliczeniowych badaniach algorytmu w czasie wykonywania algorytmu do wyznaczania największego wspólnego dzielnika dwóch liczb całkowitych.W arytmetyce macierz Wythoffa jest nieskończoną macierzą liczb wynikającą z ciągu Fibonacciego.

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

Kod Java wykorzystujący pętlę For

// Korzystanie z pętli Forklasa publiczna FibonacciExample {public static void main (String [] args){// Ustaw liczbę elementów, które chcesz w szeregu Fibonacciegoint maxNumber = 10;int previousNumber = 0;int nextNumber = 1;System.out.print ("Seria Fibonacciego" + maxNumber + "numery:");for (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Przy każdej iteracji przypisujemy drugą liczbę* do pierwszej liczby i przypisując sumę ostatnich dwóch* liczby do drugiej liczby* /int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = suma;}}}
Wynik:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Logika programu:
  • previousNumber jest inicjowany na 0, a nextNumber na 1
  • For Loop wykonuje iterację maxNumber
    • Wyświetl poprzedni numer
    • Oblicza sumę previousNumber i nextNumber
    • Aktualizuje nowe wartości previousNumber i nextNumber

Kod Java wykorzystujący While Loop

Możesz również wygenerować szereg Fibonacciego za pomocą pliku

While pętla w Javie.
// Korzystanie z pętli Whileklasa publiczna FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Seria Fibonacciego" + maxNumber + "numery:");int i = 1;while (i <= maxNumber){System.out.print (previousNumber + "");int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = suma;i ++;}}}
Wynik:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Jedyną różnicą w logice programu jest użycie pętli WHILE do drukowania liczb Fibonacciego

Seria Fibonacciego oparta na danych wejściowych użytkownika

// seria Fibonacciego na podstawie danych wprowadzonych przez użytkownikaimport java.util.Scanner;klasa publiczna FibonacciExample {public static void main (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Ile liczb chcesz w Fibonacciego:");Skaner skaner = nowy skaner (System.in);maxNumber = scanner.nextInt ();System.out.print ("Seria Fibonacciego" + maxNumber + "numery:");for (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Przy każdej iteracji przypisujemy drugą liczbę* do pierwszej liczby i przypisując sumę ostatnich dwóch* liczby do drugiej liczby* /int sum = previousNumber + nextNumber;previousNumber = nextNumber;nextNumber = suma;}}}
Logika programu:

Logika jest taka sama jak wcześniej. Zamiast na sztywno zakodować liczbę elementów do pokazania w Serii Fibonacciego, użytkownik jest proszony o wpisanie liczby.

Kod Java wykorzystujący rekursję

// Korzystanie z rekursjiklasa publiczna FibonacciCalc {public static int fibonacciRecursion (int n) {if (n == 0) {return 0;}if (n == 1 || n == 2) {powrót 1;}powrót fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Seria Fibonacciego" + maxNumber + "numery:");for (int i = 0; i  Wynik: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Logika programu:

Funkcja rekurencyjna to taka, która może wywoływać samą siebie.

fibonacciRecursion ():

  1. Pobiera liczbę wejściową. Sprawdza wartości 0, 1, 2 i odpowiednio zwraca 0, 1, 1, ponieważ ciąg Fibonacciego zaczyna się od 0, 1, 1.
  2. Gdy wejście n jest> = 3, funkcja wywoła się rekurencyjnie. Rozmowa jest wykonywana dwa razy. Zobaczmy przykład dla wprowadzenia 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

Teraz wynik jest dodawany 0 + 1 + 1 + 0 + 1 = 3