human
C ++プログラムを作成して、トップダウンアプローチと別のボトムアップを備えたダイナミックプログラミングを使用して、フィボナッチ継承のn番目の数を計算します。
gpt
ここでは、動的計画法のトップダウンとボトムアップのアプローチを使って、フィボナッチ数列のn番目の数を計算するC++コードを紹介する：

// トップダウン・アプローチ
```
#include <iostream>
#include <unordered_map>

using namespace std;

unordered_map<int, int> memo;

int fibTopDown(int n) {
if (n == 0 || n == 1) return n;
if (memo.count(n)) return memo[n];
int res = fibTopDown(n - 1) + fibTopDown(n - 2);
memo[n] = res;
return res;
}
```

// ボトムアップ・アプローチ
```
int fibBottomUp(int n) {
int fib[n + 1];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i <= n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib[n];
}

int main() {
int n;
cout << "Ingresa el enésimo número de la sucesión de Fibonacci que deseas calcular: ";
cin >> n;
cout << "El enésimo número de la sucesión de Fibonacci (top-down) es: " << fibTopDown(n) << endl;
cout << "El enésimo número de la sucesión de Fibonacci (bottom-up) es: " << fibBottomUp(n) << endl;
return 0;
}
```