您的位置:首页 > 其它

N阶台阶,每次只能走一个台阶或者两个台阶,求一共有多少种走法?

2015-09-11 21:26 423 查看
思路:

走上第20个台阶有2种情况,一种是站在第19个台阶上 在走一步就到达20

还有一种就是站在第18个台阶上再走2步就到达20台阶

……

从此,n阶台阶的走法是n-1个台阶的走法加上n-2个台阶的走法

package com.zyh.test;

public class Test {

static int num=0;

/**

* @param 夜晚聊天小程序

*/

public static void main(String[] args) {

//System.out.println(Taijie(20));

System.out.println(Taijie2(0));

}

/**

* 递归求解台阶问题 第一种做法

* 一共20个台阶,每次只能走一步或者两步,问一共有多少种走法

* @param n为台阶数

* @return 一共多少种走法

*/

public static int Taijie(int n){

if(n==1)

num=1;

if(n==2)

num=2;

if(n>2)

num=Taijie(n-1)+Taijie(n-2);

return num;

}

/**

* 第二种做法

* 全排列做法,循环的测试每种做法

*/

public static int Taijie2(int n){

if(n==20)

return 1;

if(n>20)

return 0;

return Taijie2(n+1)+Taijie2(n+2);

}

}

如果不限制走的种类,要求计算需要走多少1步的和2步的,就转换成x+2y=20的解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: