问题:
有n级台阶,可以一步走上一个台阶,也可以一步走上两个台阶,求有多少种不同的走法?
分析:
每走一次都有两种选择:上一个台阶或者上两个台阶,如下图:
即:
如果n=1级台阶,方法只有1种
如果n=2级台阶,则有2种方法
当级数为n>2的时候有以下两种情况:
1、第n级台阶时是在n-1级上1级上来的
2、第n级台阶时是在n-2级上2级上来的
例如:以n等于4为例
走完4级台阶共有5种方法
故可用递归的方法来实现:def(n)=def(n-1)+def(n-2)(当n大于等于3时,def为递归函数);
源代码如下:
package recursion;
import java.util.Scanner;
public class Labber {
int def(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
if(n==2)
return 2;
else {
int x = def(n-1)+def(n-2);
return x;
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Labber temple=new Labber();
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int sum=temple.def(n);
System.out.println(sum);
}
}