再帰およびループ プログラムを使用した Java のフィボナッチ数列
Java のフィボナッチ数列とは?
フィボナッチ数列 Java では、次の数値が前の 2 つの数値の合計である一連の数値です。フィボナッチ数列の最初の 2 つの数値は 0 と 1 です。フィボナッチ数は、2 つの整数の最大公約数を決定するためのアルゴリズムの実行時の計算研究で使用されます。
算術では、ワイトフ配列はフィボナッチ数列から得られる数の無限行列です。
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
- Java のフィボナッチ数列とは
- For ループを使用した Java のフィボナッチ数列プログラム
- While ループを使用した Java のフィボナッチ数列プログラム
- Java での再帰を使用したフィボナッチ数列
For ループを使用した Java のフィボナッチ数列プログラム
//Using For Loop public class FibonacciExample { public static void main(String[] args) { // Set it to the number of elements you want in the Fibonacci Series int maxNumber = 10; int previousNumber = 0; int nextNumber = 1; System.out.print("Fibonacci Series of "+maxNumber+" numbers:"); for (int i = 1; i <= maxNumber; ++i) { System.out.print(previousNumber+" "); /* On each iteration, we are assigning second number * to the first number and assigning the sum of last two * numbers to the second number */ int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; } } }
出力:
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 の新しい値を更新します
While ループを使用した Java のフィボナッチ数列プログラム
While
を使用して Java フィボナッチ シリーズを生成することもできます。 Java でループします。
//Using While Loop public class FibonacciWhileExample { public static void main(String[] args) { int maxNumber = 10, previousNumber = 0, nextNumber = 1; System.out.print("Fibonacci Series of "+maxNumber+" numbers:"); int i=1; while(i <= maxNumber) { System.out.print(previousNumber+" "); int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; i++; } } }
出力:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
プログラム ロジックの唯一の違いは、WHILE ループを使用してフィボナッチ数を出力することです
ユーザー入力に基づくフィボナッチ数列
//fibonacci series based on the user input 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("How many numbers you want in Fibonacci:"); Scanner scanner = new Scanner(System.in); maxNumber = scanner.nextInt(); System.out.print("Fibonacci Series of "+maxNumber+" numbers:"); for (int i = 1; i <= maxNumber; ++i) { System.out.print(previousNumber+" "); /* On each iteration, we are assigning second number * to the first number and assigning the sum of last two * numbers to the second number */ int sum = previousNumber + nextNumber; previousNumber = nextNumber; nextNumber = sum; } } }
プログラム ロジック:
ロジックは前と同じです。 Java フィボナッチ シリーズで表示する要素の数をハードコーディングする代わりに、ユーザーは数値を書くよう求められます。
Java での再帰を使用したフィボナッチ数列
以下は、再帰を使用した Java のフィボナッチ数列プログラムです:
//Using Recursion public class FibonacciCalc{ public static int fibonacciRecursion(int n){ if(n == 0){ return 0; } if(n == 1 || n == 2){ return 1; } return fibonacciRecursion(n-2) + fibonacciRecursion(n-1); } public static void main(String args[]) { int maxNumber = 10; System.out.print("Fibonacci Series of "+maxNumber+" numbers: "); for(int i = 0; i < maxNumber; i++){ System.out.print(fibonacciRecursion(i) +" "); } } }
出力:
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
プログラム ロジック:
再帰関数とは、自分自身を呼び出す機能を持つ関数です。
fibonacciRecursion():
<オール>fibonacciRecursion (4) It will recursively call fibonacciRecursion function for values 2 and 3 fibonacciRecursion (2) \\ call for value 0 and 1 fibonacciRecursion (0) = 0 fibonacciRecursion (1) = 1 fibonacciRecursion (3) \\ It will call for 1 and 2 fibonacciRecursion (1) = 1 fibonacciRecursion (2) \\ It will call for 0 and 1 fibonacciRecursion (0) = 0 fibonacciRecursion (1) = 1
結果が加算されます 0+1+1+0+1=3
Java