题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明刚刚看完电影《第 39 级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是 39 级!
站在台阶前,他突然又想着一个问题:
如果我每一步只能迈上 1 个或 2 个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完 39 级台阶,有多少种不同的上法呢?
请你利用计算机的优势,帮助小明寻找答案。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
import java.util.Scanner;
public class Main {
//static int ans=0;
public static void main(String[] args) {
/*dfs(0,-1);//当前一共上了几级台阶、步数
System.out.println(ans);
}
public static void dfs(int sum,int step){
if(sum>39){
return;
}
if(sum==39&&step%2==0){
ans++;
return;
}
dfs(sum+1,step+1);
dfs(sum+2,step+1);*/
System.out.println(51167078);
}
}
package 真题;
public class main1 {
static int ans=0;
static int count=39;
public static void main(String[] args) {
dfs(count,666,0);//当前一共上了几阶、左0,右1、总步数
System.out.println(ans);
}
public static void dfs(int sum,int x,int step){
if(sum<0){
return;
}
if(sum==0&&x==1&&step%2==0){
ans++;
return;
}
for(int j=0;j<=1;j++) {
if(j==x){
continue;
}
for (int i = 1; i <= 2; i++) {
count-=i;
dfs(count, j,step+1);
count+=i;
}
}
}
}
本文介绍了如何通过编程实现,利用递归和DFS解决小明面临的39级台阶上法问题,展示了计算不同上法的方法。
880

被折叠的 条评论
为什么被折叠?



