মডিউল ১৭_৬ঃ Fibonacci Memoization





Last updated





Last updated
// Some code
ll dp[N];
ll fibo(ll n)
{
//base case n<=1
if (n == 0 || n == 1)
{
return n;
}
//Checking if the value is precalculated or not
if (dp[n] != -1)
{
return dp[n];
}
//If not then calculating it and saving it in the array
ll ans = fibo(n - 1) + fibo(n - 2);
dp[n] = ans;
return ans;
}// Some code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll N = 1e6 + 5;
ll dp[N];
ll fibo(ll n)
{
if (n == 0 || n == 1)
{
return n;
}
if (dp[n] != -1)
{
return dp[n];
}
ll ans = fibo(n - 1) + fibo(n - 2);
dp[n] = ans;
return ans;
}
int main()
{
ll n;
cin >> n;
memset(dp, -1, sizeof(dp));
cout << fibo(n) << endl;
return 0;
}