สมมติว่าเรามีตัวเลข 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