Aquí te muestro código en C++ para calcular el enésimo número de la sucesión de Fibonacci utilizando programación dinámica enfoque top-down y bottom-up:

// Enfoque top-down
#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;
}

// Enfoque bottom-up
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;
}
ที่นี่ ฉันจะแสดงโค้ดในภาษา C++ เพื่อคำนวณหมายเลขลำดับที่ n ของลำดับ Fibonacci โดยใช้การเขียนโปรแกรมแบบไดนามิกจากบนลงล่างและจากล่างขึ้นบน: // วิธีจากบนลงล่าง #include <iostream> #include <unordered_map> โดยใช้ namespace std; unordered_map<int, int> บันทึก; int fibTopDown (int n) { ถ้า (n == 0 || n == 1) กลับ n; ถ้า (memo.count(n)) กลับบันทึก[n]; ความละเอียด int = fibTopDown(n - 1) + fibTopDown(n - 2); บันทึก[n] = ความละเอียด; ส่งคืนความละเอียด; } // วิธีการจากล่างขึ้นบน int fibBottomUp (int n) { int fib [n + 1]; ปลิ้นปล้อน[0] = 0; ปลิ้นปล้อน[1] = 1; สำหรับ (int i = 2; i <= n; i++) { fib[i] = fib[i - 1] + fib[i - 2]; } ส่งคืน fib [n]; } int main() { int n; cout << "ป้อนหมายเลขลำดับฟีโบนัชชีลำดับที่ n ที่คุณต้องการคำนวณ: "; ซิน >> n; cout << "หมายเลขลำดับที่ n ของลำดับฟีโบนัชชี (จากบนลงล่าง) คือ: " << fibTopDown(n) << endl; cout << "หมายเลขลำดับที่ n ของลำดับฟีโบนัชชี (จากล่างขึ้นบน) คือ: " << fibBottomUp(n) << endl; กลับ 0; }
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence