信号灯

题目描述

通常称交通灯为红绿灯,其实是不准确的,一般信号灯有Red、Green和Yellow三种颜色。

现在有一个巨型的交通灯,一排共N个灯,它们都可以发出有红、绿、黄三种灯光。为了显目,规定:(1)不得有灭的灯;(2)相同颜色的灯相邻不得超过3个。

请你计算有多少种可靠的信号灯排列方案?

输入输出格式

输入格式:

一行,一个整数N(3<N<20)。

输出格式:

一行,一个整数M,可行的方案数。

输入输出样例

输入样例:
4
输出样例:
78
思路:第n个是前一个的3倍(每一种后加3种)再减去违法数(前4个的2倍)。(n>4)
代码:
#include<iostream>
using namespace std;
int n,a[45];
int main()
{
    cin>>n;
    a[4]=78;a[1]=3;a[2]=9;a[3]=27;
    for(int i=5;i<=n;i++)a[i]=a[i-1]*3-a[i-4]*2;
    cout<<a[n];
    return 0;
}
View Code

 

 
posted @ 2019-04-16 14:08  背‘水’一栈  阅读(177)  评论(0编辑  收藏  举报