ধরুন আমাদের একটি সংখ্যা n আছে। অমল তার পোষা প্রাণীর একটি নাম দিতে চায়। তিনি অ্যানালগরিদম অনুসরণ করবেন। নাম n অক্ষর দীর্ঘ হবে. নামের মধ্যে বড় হাতের এবং ছোট হাতের সেলেটর 'O' এবং 'o' থাকবে। অ্যালগরিদম প্রস্তাব করে যে নামের i-তম অক্ষরটি 'O' (বড় হাতের) হওয়া উচিত যদি আমি ফিবোনাচি ক্রম-এর সদস্য হয় এবং অন্যথায় 'o' (ছোট হাতের)। নামের অক্ষরগুলি 1 থেকে n পর্যন্ত সংখ্যাযুক্ত।
সুতরাং, যদি ইনপুটটি n =10 এর মত হয়, তাহলে আউটপুট হবে "OOOoOooOoo", কারণ প্রথম ফিবোনাকিনাম্বারগুলি হল 1, 2, 3, 5 ইত্যাদি৷
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
s :=n আকারের একটি স্ট্রিং এবং 1 থেকে i এবং j আরম্ভ করার জন্য 'o's দিয়ে ভরা, যখন i <=n, i দ্বারা j এবং setj :=i-j বৃদ্ধি করে প্রতিটি পুনরাবৃত্তির পরে, s[i-1 করুন ] :='O'return s.
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#includenamespace ব্যবহার করে std;string solve(int n){ string s(n, 'o'); for (int i =1, j =1; i <=n; i +=j, j =i - j) s[i - 1] ='O'; রিটার্ন s;}int main(){int n =10; cout < ইনপুট
10আউটপুট
<প্রে>ওওওওওওওওওওওওওওওওওওওওওওওওওওওওওওওওও