मान लीजिए हमारे पास एक संख्या n है। अमल अपने पालतू जानवर को एक नाम देना चाहता है। वह एक एल्गोरिदम का पालन करेगा। नाम n वर्ण लंबा होगा। नाम में बड़े और छोटे अक्षर 'O' और 'o' होंगे। एल्गोरिदम सुझाव देता है कि नाम का iवां अक्षर 'O' (अपरकेस) होना चाहिए यदि i फाइबोनैचि अनुक्रम का सदस्य है, और 'o' (लोअरकेस) अन्यथा। नाम में अक्षरों को 1 से n तक गिना जाता है।
उदाहरण के लिए, यदि इनपुट n = 10 है, तो आउटपुट "OOOoOooOoo" होगा, क्योंकि पहले फाइबोनैचि संख्याएं 1, 2, 3, 5 आदि हैं।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
s := a string of size n and filled with 'o's for initializing i and j from 1, when i <= n, increase i by j and set j := i-j after each iteration, do s[i-1] := 'O' return s.
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing 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