尋找斐波那契位置上有 O 的名字的 C++ 程式碼
假設我們有一個數字 n。阿瑪爾想給他寵物起個名字。他會遵循一個演算法。該名字將有 n 個字元。該名稱將包含大寫和小寫字母“O”和“o”。該演算法表明,如果 i 是斐波那契數列的一個數,則名稱的第 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP