> For the complete documentation index, see [llms.txt](https://phitron.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://phitron.gitbook.io/algorithm/undefined-3/_-bottom-up-approach-in-fibonacci-series.md).

# মডিউল ১৭\_৭ঃ Bottom up approach in Fibonacci series

আমরা এতক্ষন যে এপ্রোচ বা memoization মেথড দেখেছি সেটাকে বলা হয় top down approach| আমরা এখন bottom up এপ্রোচ দেখবো।

<figure><img src="/files/HBxQIG4FCvI6s5RbYZbV" alt=""><figcaption></figcaption></figure>

ব্যাপারটা হচ্ছে আমরা top down এর ক্ষেত্রে n দেওয়া থাকলে সেখান থেকে ক্যালকুলেশন শুরু করে ০ অব্দি যেতাম।

**n->n-1->n-2->...........->3->2->1**

এখন আমরা ০ থেকে ক্যালকুলেট করে n এর কাছে যাবো।

**0->1->2->3->..........->n-2->n-1->n**

আমরা বিষয়টা করবো একটা এ্যারে এর মাধ্যমে।

একটা এ্যারে নিব এবং সেখানে ০ আর ১ এর ভ্যালু যথাক্রমে ০ আর ১ সেট করে দিব।

তারপর যাস্ট একটা কাজ করবো। সেটা হচ্ছে&#x20;

**a\[i] = a\[i-1]+a\[i-2]**

<figure><img src="/files/B89rfUufuTuX2mBNUvUv" alt=""><figcaption></figcaption></figure>

এভাবেই Bottoum up approach এ fibonacci number ক্যাল্কুলেট করা হয়।

সম্পূর্ণ কোডঃ

```cpp
// Some code
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int a[n];
    a[0] = 0;
    a[1] = 1;
    // O(N)
    for (int i = 2; i <= n; i++)
    {
        a[i] = a[i - 1] + a[i - 2];
    }
    cout << a[n] << endl;
    return 0;
}
```
