这是华哥那天问我的,当时不想动脑。回来后,网上看了一下,原理很简单,用到了递归。但我递归很菜。。。
他的思路是:
我们把n 级台阶时的跳法看成是n 的函数,记为f(n)。当n>2 时,第一次跳的时候就有两种不同的选择:一是第一次只跳1 级,此时跳法数目等于后面剩下的n-1 级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2 级,此时跳法数目等于后面剩下的n-2 级台阶的跳法数目,即为f(n-2)。
因此n 级台阶时的不同跳法的总数f(n) = f(n-1) + f(n-2)。
下面是java代码:
public class digui {
public static int digui(int x)
{
if(x==1) return 1;
else
if(x==2) return 2;
else
return digui(x-1)+(x-2);
//return x;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println(digui(1000));
}
{
if(x==1) return 1;
else
if(x==2) return 2;
else
return digui(x-1)+(x-2);
//return x;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println(digui(1000));
}
}
//498503