,每次走一步或两步,问最多有多少种走法
分析:共有25个阶梯,每一步走法共有两种,走一级,或是走两级。分两种情况:如果第一次走两级的话,那么还有25-2=23级阶梯要走。再求剩下23级阶梯共有多少走法。如果第一次走一级的话,那么还有25-1=24级阶梯要走,于是走完25级阶梯的方法总数,就等于爬完23级阶梯总共方法+爬完24级阶梯的方法总数。而23极又可再分为(23-1)、(23-2)级阶梯。依次类推,可见这是一个典型的递归类型。我们可以很容易的计算出当有1级和2级阶梯的时候所有的次数:分别为1和2。于是计算方法总数的函数如下:
---------------------------------getNum()---------------------------------------------public int getNum(int i) { int r=0; if(i>2) { num=getNum(i-1)+getNum(i-2); return num; } else if(i==1) { r=1; } else if(i==2) { r=2; } return r; }---------------------------------------------------------------------------------------测试程序使用java编写.运行使用命令:java stair 25
完整源码:
分析:共有25个阶梯,每一步走法共有两种,走一级,或是走两级。分两种情况:如果第一次走两级的话,那么还有25-2=23级阶梯要走。再求剩下23级阶梯共有多少走法。如果第一次走一级的话,那么还有25-1=24级阶梯要走,于是走完25级阶梯的方法总数,就等于爬完23级阶梯总共方法+爬完24级阶梯的方法总数。而23极又可再分为(23-1)、(23-2)级阶梯。依次类推,可见这是一个典型的递归类型。我们可以很容易的计算出当有1级和2级阶梯的时候所有的次数:分别为1和2。于是计算方法总数的函数如下:
---------------------------------getNum()---------------------------------------------public int getNum(int i) { int r=0; if(i>2) { num=getNum(i-1)+getNum(i-2); return num; } else if(i==1) { r=1; } else if(i==2) { r=2; } return r; }---------------------------------------------------------------------------------------测试程序使用java编写.运行使用命令:java stair 25
完整源码: