描述
我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。如果你能算出一共有多少种取法,那么你会被天神Lijiganjun奖励。
输入
仅包含一个数n(1< n < 50)。
输出
仅包含一个数———你的答案。
设dp(n,k)代表前n个数中最右边一个数字取(k=1)或不取(k=0)的方案数
#include<iostream> #include<cstring> using namespace std; int n; ][]; long A(int n,int k){ ) return dp[n][k]; long& ans=dp[n][k]; ) ; ){ ,)+A(n-,); }){ ,); } } int main() { memset(dp,,sizeof(dp)); cin>>n; cout<<A(n,)+A(n,); ; }