숫자 n이 있다고 가정합니다. Amal은 애완 동물의 이름을 지정하고 싶어합니다. 그는 알고리즘을 따를 것입니다. 이름은 n자입니다. 이름에는 대문자와 소문자 'O'와 'o'가 포함됩니다. 알고리즘은 i가 피보나치 수열의 구성원이면 이름의 i번째 문자가 'O'(대문자)여야 하고 그렇지 않으면 'o'(소문자)여야 한다고 제안합니다. 이름의 문자는 1에서 n까지 번호가 매겨져 있습니다.
따라서 입력이 n =10과 같으면 첫 번째 fibonaccinumber가 1, 2, 3, 5 등이므로 출력은 "OOOOoOooOoo"가 됩니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
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