您的位置:首页 > 其它

也说说有N阶楼梯每次可以选择下1阶、2阶、3阶一共有多少种下法的问题

2014-07-16 22:18 851 查看
问题:假设有50阶台阶,每次可以选择下3阶、2阶、或者1阶,问下到底一共可以有多少种下法,并用J***A代码实现

分析:很明显这是一个递归的问题

假设只有一阶台阶,那么只有一种走法,即下一阶

假设有两阶台阶,那么有两种走法:

a.一次下两个台阶

b.一次一个台阶下两次

假设有三阶台阶,那么有四种走法:

a.下一次三阶

b.下一次两阶,再下一次一阶

c.下一次一阶,再下一次两阶

d.下三次一阶

由上所述,易得

f(n) = f(n-3) + f(n-2) + f(n-1)

解答:

package javaapplication1;

/**

*

* @author meng

*/

public class DownStairs1 {

/**

* @param args

*/

public static void main(String[] args) {

int currentStep = 50;

System.out.println("totaly possibility is: " + totalPsblt(currentStep));

}

public static int totalPsblt(int n) {

switch (n) {

case 1:

return 1;

case 2:

return 2;

case 3:

return 4;

default:

return totalPsblt(n - 1) + totalPsblt(n - 2) + totalPsblt(n - 3);

}

}

}

评析:上段J***A仅能实现,但是效率比较低
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐