Java のフィボナッチ数列プログラムを説明する前に、フィボナッチ数を計算する数学的方法が何であるかを見てみましょう。
「フィボナッチ数列は、0 と 1 で始まる数列の最後の 2 つの連続する数値を加算すると形成されます。」
言い換えれば、フィボナッチ数列では、次の数値は最後の 2 つの数値の合計に等しいと言えます。たとえば、0、1、1、2、3、5、8、13、21、34... 上記の系列を見ると、数学で計算するのは非常に簡単に見えます。最後の 2 つのフィボナッチ数を取得して加算するだけで完成です。その結果がシリーズの最新の数値です。したがって、フィボナッチ数列の次の数値は 21 + 34 = 55 になります。ただし、Java にはこれを行うためのさまざまなアルゴリズムがあります。考えられる方法を見てみましょう。
Java のフィボナッチ数列 [反復法]
Java でフィボナッチ数列プログラムを計算する最初の最も基本的な方法は、反復法を使用することです。名前が示すように、ループを使用して一連の処理を繰り返します。次の例をさらに詳しく見てみましょう。例
public class IterativeFibonacci {
public static void fibonacci(int MAX) {
int firstNumber = 0;
int secondNumber = 1;
int fibonacci = '\0';
System.out.print(firstNumber + " ");
System.out.print(secondNumber + " ");
for (int i = 2; i < MAX; i++) {
fibonacci = firstNumber + secondNumber;
System.out.print(fibonacci + " ");
firstNumber = secondNumber;
secondNumber = fibonacci;
}
}
public static void main(String[] args) {
System.out.println("Print Fibonacci Series Using Iterative Method");
int MAX = 15;
fibonacci(MAX);
}
}
出力
反復法を使用したフィボナッチ数列の出力 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
説明
上の例では、「 fibonacci 」と呼ばれるメソッドを使用して、フィボナッチ数列を繰り返し出力しています。変数MAX には、出力するフィボナッチ数の合計数が格納されます。2 つの変数firstNumberとSecondNumber には、最初の 2 つのフィボナッチ数がそれぞれ格納されます。次に、最初と 2 番目のフィボナッチ数がすでに出力されているため、forループは i = 2 から始まります。各反復では、シリーズを継続するために最初と 2 番目の数値が更新されます。ループは MAX 制限に近づくと終了します。i < MAX。Java で再帰を使用したフィボナッチ数列
反復法についてはよく知っているので、Java で再帰を使用してフィボナッチ数列を計算してみましょう。例
public class RecursiveFibonacci {
// recursive method to return the fibonacci series
public static int fibonacci(int MAX) {
// base case
if (MAX <= 1) {
return MAX;
}
// recursive call
else {
// calculate the last two fibonacci numbers recursively
return fibonacci(MAX - 2) + fibonacci(MAX - 1);
}
}
public static void main(String[] args) {
System.out.println("Print Fibonacci Series Using Recursion in Java");
int MAX = 10;
for (int i = 0; i < MAX; i++) {
System.out.print(fibonacci(i) + " ");
}
}
}
出力
Java で再帰を使用してフィボナッチ数列を出力する 0 1 1 2 3 5 8 13 21 34
GO TO FULL VERSION