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