สมมติว่าเรามีตัวเลข n Amal ต้องการตั้งชื่อให้สัตว์เลี้ยงของเขา เขาจะทำตามอนาลอก ชื่อจะมีความยาวอักขระ n ตัว ชื่อจะประกอบด้วยตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก 'O' และ 'o' อัลกอริทึมแนะนำตัวอักษรตัวที่ i ของชื่อควรเป็น 'O' (ตัวพิมพ์ใหญ่) ถ้าฉันเป็นสมาชิกของลำดับฟีโบนักชี และ '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.
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#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