diff --git a/dynamic_programming/fibonacci.cpp b/dynamic_programming/fibonacci.cpp new file mode 100644 index 00000000000..0eae8f2b692 --- /dev/null +++ b/dynamic_programming/fibonacci.cpp @@ -0,0 +1,27 @@ +#include +#include +using namespace std; + +/** + * @brief Fibonacci using Dynamic Programming + * Time Complexity: O(n) + * Space Complexity: O(n) + */ +int fibonacci(int n) { + if (n <= 1) return n; + vector dp(n + 1); + dp[0] = 0; + dp[1] = 1; + for (int i = 2; i <= n; i++) { + dp[i] = dp[i-1] + dp[i-2]; + } + return dp[n]; +} + +int main() { + int n; + cout << "Enter n: "; + cin >> n; + cout << "Fibonacci(" << n << ") = " << fibonacci(n) << endl; + return 0; +}