尋找斐波那契位置上有 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

更新時間:2022-03-15

83 次瀏覽

開始您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.