Fighting_小银考呀考不过四级
Time Limit: 1000MS
Memory Limit: 65536KB
Submit
Statistic
Problem Description
四级考试已经过去好几个星期了,但是小银还是对自己的英语水平担心不已。
小银打算好好学习英语,争取下次四级考试和小学弟小学妹一起拿下它!
四级考试的时候,监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。
那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有多少种坐法。
小银打算好好学习英语,争取下次四级考试和小学弟小学妹一起拿下它!
四级考试的时候,监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。
那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有多少种坐法。
Input
多组输入。
第一行输入整数n,代表教室里这一排的座位数目。(1 <= n <= 45)
Output
输出种类数目。输入输出各占一行,保证数据合法。
Example Input
1 3 5
Example Output
1 3 8
有n个座位时,分两种情况考虑
:1.最后一个座位没人坐时,有F[n-1]种坐法;
2.有人坐最后一个时,那么倒数第一第二个座位都不能坐;相当于F[n-3]种坐法再加1;
01 | #include <stdio.h> |
02 | #include <stdlib.h> |
03 |
04 | int main() |
05 | { |
06 | int n, i; |
07 | long long f[45]; |
08 | while ( scanf ( "%d" , &n)!=EOF) |
09 | { |
10 | f[0] = 1;f[1] = 2;f[2] = 3; |
11 | if (n>3) |
12 | { |
13 | for (i = 3;i<n;i++) |
14 | { |
15 | f[i] = f[i-1]+f[i-3]+1; |
16 | } |
17 | } |
18 | printf ( "%lld\n" , f[n-1]); |
19 | } |
20 | return 0; |
21 | } |