একটি সংখ্যা n দেওয়া আছে। অমল তার পেটের নাম রাখতে চায়। নামটি n অক্ষরের হবে। নামটিতে শুধু 'O' (বড় হাতের) এবং 'o' (ছোট হাতের) থাকবে। অ্যালগরিদম: i-তম অক্ষর 'O' হবে যদি i ফিবোনাচ্চি সিকোয়েন্সের সদস্য হয়, অন্যথায় 'o'। অক্ষরগুলো ১ থেকে n পর্যন্ত নম্বর করা আছে।
উদাহরণ
n=10 → আউটপুট: "OOOoOooOoo"
ব্যাখ্যা: প্রথম ফিবোনাচ্চি সংখ্যাগুলো ১, ২, ৩, ৫, ৮... তাই এই পজিশনগুলোতে 'O'।
সমাধানের ধাপসমূহ
s := n আকারের স্ট্রিং 'o' দিয়ে ভরা
for i=1, j=1; i<=n; i+=j, j=i-j:
s[i-1] := 'O'
return s
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace 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';
return s;
}
int main() {
int n = 10;
cout << solve(n) << endl;
}
ইনপুট
10
আউটপুট
OOOoOooOoo