কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: ডাইনামিক প্রোগ্রামিং ব্যবহার করে ফিবোনাচ্চি সংখ্যা বের করা


ফিবোনাচ্চি সিকোয়েন্স (Fibonacci sequence) এরূপ:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,...

এই সিকোয়েন্সে nth টার্ম হলো (n-1)th এবং (n-2)th টার্মের যোগফল।

রিকার্সিভ আপনোয় ব্যবহার করে জেনারেট করা যায়, কিন্তু ডাইনামিক প্রোগ্রামিং-এ প্রসিডিউর সহজ। এটি সকল ফিবোনাচ্চি সংখ্যা একটি টেবিলে স্টোর করে, সেই টেবিল ব্যবহার করে সহজেই সিকোয়েন্সের পরবর্তী টার্মগুলো জেনারেট করতে পারে।

ইনপুট − টার্ম নম্বর ইনপুট নিন। মান लो ১০।

আউটপুট − ১০ম ফিবোনাচ্চি টার্ম হল ৫৫।

অ্যালগরিদম

genFiboSeries(n)

ইনপুট: সর্বোচ্চ টার্মের সংখ্যা।

আউটপুট: nth ফিবোনাচ্চি টার্ম।

শুরু
    fibo নামক অ্যারে ডিফাইন করুন সাইজ n+2
    fibo[0] := 0
    fibo[1] := 1
    i := 2 থেকে n পর্যন্ত
        fibo[i] := fibo[i-1] + fibo[i-2]
   inished
    fibo[n] ফেরত দাও
শেষ

উদাহরণ কোড

#include <iostream>
using namespace std;

int genFibonacci(int n) {
    int fibo[n+2];
    fibo[0] = 0;
    fibo[1] = 1;
    for (int i = 2; i <= n; i++) {
        fibo[i] = fibo[i-1] + fibo[i-2];
    }
    return fibo[n];
}

int main() {
    int n;
    cout << "টার্মের সংখ্যা দিন: ";
    cin >> n;
    cout << n << " তম ফিবোনাচ্চি টার্ম: " << genFibonacci(n) << endl;
}

আউটপুট

টার্মের সংখ্যা দিন: 10
10 তম ফিবোনাচ্চি টার্ম: 55
  1. C++ ব্যবহার করে এলিপসের এরিয়া বের করা

  2. অ্যারে ব্যবহার করে সংখ্যাগুলোর গড় (Average) বের করার C++ প্রোগ্রাম

  3. রিকার্সন ব্যবহার করে প্রাকৃতিক সংখ্যাগুলোর যোগফল (Sum of Natural Numbers) বের করার C++ প্রোগ্রাম

  4. রিকার্সন ব্যবহার করে GCD (Greatest Common Divisor) বের করার C++ প্রোগ্রাম