有N级楼梯,一次可走1或2级,问有几种走法?
N<=5000
分析:
走到P级的走法=走到P-1的走法数+走到P-2的走法数
所以为动规。
#include<cstdio>
#define INF 1000000
int dp[INF]={0},n;
int main(){
scanf("%d",&n);
dp[0]=1;//初始化第一个
for(int i=1;i<=n;i++)//递推
{
if(i-1>=0)
{
dp[i]=dp[i-1];
}
if(i-2>=0)
{
dp[i]=dp[i-1]+dp[i-2];
}
printf("f[%d]=%d\n",i,dp[i]);//分别输出1至N楼的走法
}
}