Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C++ เพื่อค้นหาชื่อที่มี O ในตำแหน่งฟีโบนักชี


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