问题描述:梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编写一个程序,计算共有多少中不同的走法
解题思路:本题来源于网络,解决方法也是比较简单,纯当练手。本人仅采用递归思想,引用他人方法,用java语言移植而已。具体代码如下,欢迎大家提出意见和建议。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ClimbStairs {
//构造函数
public ClimbStairs(){
}
//得到nCounts的方法,递归求解。nStairs:楼梯阶数
public int getNCounts(int nStairs){
if(nStairs == 1){
return 1;
} else if(nStairs == 2){
return 2;
} else {
return getNCounts(nStairs - 1) + getNCounts(nStairs - 2);
}
}
//输入需要捕捉异常
public static void main(String[] args) throws Exception{
//楼梯阶数
int nStairs;
//走法数
int nCounts;
ClimbStairs climbStairs = new ClimbStairs();
System.out.println("请输入阶梯数(整数):");
//输入阶梯数,整数;以下可以分开写,本人比较偷懒,嘿嘿
nStairs = Integer.parseInt(new BufferedReader
(new InputStreamReader(System.in)).readLine());
//计算
nCounts = climbStairs.getNCounts(nStairs);
//输出结果
System.out.println(nStairs + "个阶梯有" + nCounts + "种走法。");
}
}