#include<stdio.h>
int ans;
void dfs(int n,int step)
{
if(n<0)//循环出口
{
return;
}
if(n==0&&step%2==0)//n为剩下的台阶数,step为已经走的步数 检查满足条件的
{ans++;
}
dfs(n-1,step+1);//一次跨一步
dfs(n-2,step+1);//一次跨两步
}
main()
{
dfs(39,0);//剩下台阶数,已经走的步数
printf("%d",ans);
return 0;
}
//结果:51167078
int ans;
void dfs(int n,int step)
{
if(n<0)//循环出口
{
return;
}
if(n==0&&step%2==0)//n为剩下的台阶数,step为已经走的步数 检查满足条件的
{ans++;
}
dfs(n-1,step+1);//一次跨一步
dfs(n-2,step+1);//一次跨两步
}
main()
{
dfs(39,0);//剩下台阶数,已经走的步数
printf("%d",ans);
return 0;
}
//结果:51167078