Description
四级考试已经过去好几个星期了,但是小银还是对自己的英语水平担心不已。
小银打算好好学习英语,争取下次四级考试和小学弟小学妹一起拿下它!
四级考试的时候,监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。
那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有多少种坐法。
小银打算好好学习英语,争取下次四级考试和小学弟小学妹一起拿下它!
四级考试的时候,监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。
那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有多少种坐法。
Input
第一行输入整数n,代表教室里这一排的座位数目。(1 <= n <= 45)
Output
输出种类数目。输入输出各占一行,保证数据合法。
Sample Input
1 3 5
Sample Output
1 38
题目描述
一排座位,在至少做一个人的前提下,而且两个人之间至少隔两个空位,求一共有几种做法
解题思路
这个题可以先列举一下,至少做一个人,一个人坐就是一种,二个人是两种,三个人是三种,四个是五种,五个是八种,这个逐个推下去,发现第i个种数等于前一个种数加上i-3个的种数再加一
源代码
#include<bits/stdc++.h> using namespace std; int main() { int n,i; int f[46]; while(cin>>n) { f[1]=1; f[2]=2; f[3]=3; for(i=4;i<=n;i++) { f[i]=f[i-1]+f[i-3]+1; } cout<<f[n]<<endl; } return 0; }