在C ++中用两种颜色绘制楼梯以使相邻的两种颜色不是黄色的方法
我们给了n个楼梯和2种颜色(红色和黄色),用于绘制这些楼梯。我们的任务是计算可以绘制楼梯的方式的数量,以使两个连续的步骤都不会变成黄色。
让我们举个例子来了解这个问题,
输入项
3
输出结果
5
说明
The ways in which stairs can be painted are YRY, RYR, YRR, RRY, RRR. here R denotes red color, Y denotes yellow color.
为了解决这个问题,让我们看一下可以绘制楼梯的方式。
N=1,方式(1)=2:R,Y
N=2,方式(2)=3:RY,YR,RR
N=3,ways(3)=5:RYR,YRY,RRY,YRR,RRR
N=4,ways(4)=8:YRYR,RYRY,RYRR,YRRY,YRRR,RRYR,RRRR,RRUBY。
因此,从这些情况下,我们可以得出这是一个斐波那契数列,第一个元素为2,第二个元素为3。
用来说明我们逻辑运作方式的程序,
示例
#include <iostream>
using namespace std;
int colorSteps(int n) {
int first = 2;
int next = 3;
for (int i = 3; i <= n; i++) {
next = first + next;
first = next - first;
}
return next;
}
int main(){
int n = 6;
cout<<"Number of ways to color "<<n<<" steps is "<<colorSteps(n);
return 0;
}输出结果
Number of ways to color 6 steps is 21
热门推荐
10 老师对学校祝福语简短
11 送外卖祝福语大全简短
12 钱包祝福语简短10字
13 雪后早晨简短的祝福语
14 新年祝福语和语句简短
15 新年祝福语短句简短搞笑
16 送灯祝福语简短独特
17 领证幽默祝福语简短
18 许愿星姐妹祝福语简短