#include <stdio.h>
#define m 39//台阶数作为树层数
int count=0;//方案数
int foot=0;//步数
void dfs(int t)
{
if(t==m)
{
if(foot%2==0)
{//走到最后,必须偶数步
count++;
}
return;
}
else
{
//一步走一个台阶
foot++;
dfs(t+1);//继续走
foot--;//退回来
//当然,小于等于37时,还可以一步走两个台阶
if(t<=m-2)
{
foot++;
dfs(t+2);
foot--;//退回来
}
}
}
int main(){
dfs(0);
printf("%d",count);
return 0;
}
第39级台阶_回溯法(C语言)
最新推荐文章于 2021-05-20 12:55:52 发布