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

โค้ด C++ หาชื่อที่มี O ตำแหน่งฟีบอนัชชี

สมมติว่าเรามีตัวเลข n อมลอยากตั้งชื่อสัตว์เลี้ยง ตามอัลกอริทึม ชื่อยาว n ตัวอักษร ประกอบด้วย 'O' และ 'o' ตัวพิมพ์ใหญ่และเล็ก ตัวอักษรที่ i ควรเป็น 'O' ถ้า i เป็นสมาชิกของลำดับฟีบอนัชชี มิฉะนั้น 'o' ตัวอักษรหมายเลข 1 ถึง n

เช่น ถ้าอินพุตคือ n = 10 เอาต์พุตจะเป็น "OOOoOooOoo" เพราะเลขฟีบอนัชชีแรกคือ 1, 2, 3, 5...

ขั้นตอนการแก้ปัญหา

s := สตริงขนาด n เติม 'o'
for i, 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