フィボナッチ再帰のアルゴリズムを思い出そうとしています。以下:
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
それは貪欲なので、私が探しているものではありません。これは指数関数的に増加します ( Java の再帰的なフィボナッチ数列を見てください。最初の引数が大きいほど、無駄な呼び出しが行われます)。
おそらく、以前のフィボナッチ値を呼び出すと、値を再計算する代わりに値を取得する「巡回引数シフト」のようなものがあります。