O(1)
複雑さと前処理でn番目のフィボナッチ数を計算したいO(n_max)
。
そのためには、次の C++ コードのように、以前に計算された値を保存する必要があります。
#include<vector>
using namespace std;
vector<int> cache;
int fibonacci(int n)
{
if(n<=0)
return 0;
if(cache.size()>n-1)
return cache[n-1];
int res;
if(n<=2)
res=1;
else
res=fibonacci(n-1)+fibonacci(n-2);
cache.push_back(res);
return res;
}
しかし、Elm では許可されていない副作用に依存しています。