এই সমস্যায়, আমাদের একটি সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল C++ এ Nth ফিবোনাচি সংখ্যার শেষ দুটি সংখ্যা খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।
সমস্যা বর্ণনা
আমাদের Nth Fibonacci সংখ্যার শেষ দুটি সংখ্যা (যেমন দুটি LSB's) খুঁজে বের করতে হবে। সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট :N =120
আউটপুট :৮১
সমাধান পদ্ধতি
Nth শব্দটি খুঁজে পেতে একটি সহজ সমাধান হল সরাসরি ফিবোনাচি সূত্র ব্যবহার করা। কিন্তু N একটি বড় সংখ্যা হলে এই পদ্ধতিটি সম্ভব হবে না। সুতরাং এটি কাটিয়ে উঠতে, আমরা ফিবোনাচি সিরিজের বৈশিষ্ট্য ব্যবহার করব যা শেষ দুটি সংখ্যা 300 পদের পরে পুনরাবৃত্তি করে। অর্থাৎ 75তম পদের শেষ দুটি সংখ্যা 975তম পদের সমান।
এর মানে হল যে 300 পর্যন্ত কাজ করা আমাদের সমস্ত সম্ভাব্য সমন্বয় দেবে এবং কোন শব্দটি ব্যবহার করতে হবে তা খুঁজে বের করতে আমরা 300 এর সাথে সংখ্যার মোড খুঁজে পাব।
উদাহরণ
#include <iostream> using namespace std; long int fibo(int N){ long int a=0,b=1,c; for(int i=2; i<= N;i++) { c=a+b; a=b; b=c; } return c; } int findLastTwoDigitNterm(int N) { N = N % 300; return ( fibo(N)%100); } int main() { int N = 683; cout<<"The last two digits of "<<N<<"th Fibonacci term are "<<findLastTwoDigitNterm(N); return 0; }
আউটপুট
The last two digits of 683th Fibonacci term are 97