ボトムアップ
ループを用いて漸化式を解く。
端々の計算結果を先に求め、その結果を用いて計算していく手法。
フィボナッチ数列をボトムアップ型の動的計画法を用いて計算する例。
code:fib.cpp
#include <bits/stdc++.h>
using namespace std;
ulong fib(int N) {
vector<ulong> a(N + 1, -1);
a0 = 0;
a1 = 1;
for (int n = 2; n <= N; n++) {
an = an - 1 + an - 2;
}
return aN;
}
int main() {
const int N = 40;
for (int n = 0; n <= N; n++) {
cout << "n=" << n << ": " << fib(n) << endl;
}
}