信号灯
题目描述
通常称交通灯为红绿灯,其实是不准确的,一般信号灯有Red、Green和Yellow三种颜色。
现在有一个巨型的交通灯,一排共N个灯,它们都可以发出有红、绿、黄三种灯光。为了显目,规定:(1)不得有灭的灯;(2)相同颜色的灯相邻不得超过3个。
请你计算有多少种可靠的信号灯排列方案?
输入输出格式
输入格式:
一行,一个整数N(3<N<20)。
输出格式:
一行,一个整数M,可行的方案数。
输入输出样例
输入样例:
4
输出样例:
View Code
78
思路:第n个是前一个的3倍(每一种后加3种)再减去违法数(前4个的2倍)。(n>4)
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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; }