题目描述
我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。如果你能算出一共有多少种取法,那么你会被天神Lijiganjun奖励。
输入
仅包含一个数n(1< n < 50)。
输出
仅包含一个数———你的答案。
样例输入
5
样例输出
13
提示
n=45 的时候,已经超过1亿,用long long int 定义。
思路:f[i]等于在 i-1 的序列里最右侧加入了一个 i ,于是就有了两种情况,一种是先拿 i , 但 i - 1 就不能一起拿了,也就是说这种情况相当于前 i - 2 跟 i 一起拿(只需算f[i-2]的次数,因为i每种情况下都是第一个拿,不占次数),第二种情况是留着 i 最后再拿,也就成了只拿前 i - 1 (最后一个自然就是i 所以只需算f[i-1]的次数),即 f[i-1] , f[i] 为两种情况之和,也就是 f[i] = f[i-1] + f[i-2]。
疑问:为什么n等于2时有三种取法????