は、Java帳から運動をTheresの私はそれは私が混乱している読んでいる:フィボナッチ(n)のこの実装はどのように機能しますか? [再帰]
Aフィボナッチ数列は、番号1、1、2、3、5、8、 13のシーケンスであり、 21,34などがあり、各番号(3番目の番号から)は前の2つの合計である です。 引数として整数をとり、 から始まる多くのフィボナッチ数を表示するメソッドを作成します。例えば、あなたが出力されます(フィボナッチは クラスの名前です)は、Javaフィボナッチ5を実行し、場合:1、1、2、3、5
私はそれが必要になることを誓ったかもしれません配列または前の数字を格納するいくつかの方法が、私は答えを見たとき、そうではありませんでした:
import java.util.*;
public class Fibonacci {
static int fib(int n) {
if (n <= 2)
return 1;
return fib(n-1) + fib(n-2);
}
public static void main(String[] args) {
// Get the max value from the command line:
int n = Integer.parseInt(args[0]);
if(n < 0) {
System.out.println("Cannot use negative numbers"); return;
}
for(int i = 1; i <= n; i++)
System.out.print(fib(i) + ", ");
}
}
は、誰かが自分自身がこれを生成内の関数を使ってどのように説明できるだろうか?
によってアルゴリズムを参照してください
は再帰を学ぶための最善の方法は、再帰について学ぶことである 'recursion' – Marcus
と呼ばれています。 –
再帰について学ぶ最も良い方法は、それを行うだけであり、派手な名前については考えないことです。あなたがコンパイラ/ VMだと想像して、プログラムを実行しています。スタックの存在を感じてください。リーチ禅。 – sehe