球迷呐喊c++
作者:互联网
题目描述
在足球赛的看台上,球迷们自发地组织起来为球队呐喊助威。
他们在看台上设置了一个巨型的喇叭,他们希望使喇叭或助威的声音不停交替而不停歇。然而,这个喇叭是由压缩气体驱动的,如果你连续两秒钟强迫让它发声,喇叭就会坏掉。因此,在喇叭可以响的时候,一切都没问题;在喇叭不响的时候,球迷们就得开始呐喊。在比赛开始前,一些球迷聚在一起商量了一个助威方案:这个方案用一列0和1来表示,如果是1,则表示喇叭响,如果是0,则表示球迷呐喊。为保证喇叭不会坏掉,该方案里,不允许有连续的两个1出现。
输入格式
一个正整数n,表示方案长度。
输出格式
一个正整数,表示可行的方案数量。
样例输入
3
样例输出
5
样例输入
1
样例输出
2
问题提示
【样例1解释】
n=3时,合理方案由000、001、010、100、101,而110、011、111就不可以,故答案为5。
【数据规模】
对于30%的数据:n<10
对于50%的数据:n<20
对于100%的数据:n<45
代码如下:
#include<bits/stdc++.h>
using namespace std;
int f[45][2];
int main()
{
int n;
cin>>n;
f[1][0] = f[1][1] = 1;
for(int i=2;i<=n;i++)
{
f[i][0] = f[i-1][0] + f[i-1][1];
f[i][1] = f[i-1][0];
}
cout<<f[n][0] + f[n][1];
return 0;
}
标签:方案,int,样例,c++,呐喊,喇叭,球迷 来源: https://blog.csdn.net/FCBerlin/article/details/120317464