1、递归
public static int f(int n){
if (n < 1){
throw new IllegalArgumentException(n + "不能小于1");
}
if (n == 1 || n == 2){
return n;
}
return f(n-2) + f (n-1);
}
2、循环迭代
public static int loop(int n){
if (n < 1){
throw new IllegalArgumentException(n + "不能小于1");
}
if (n == 1 || n == 2){
return n;
}
// 最后一次跨一步的走法为 one ; 最后一次跨两步的走法为 two
// 所有走法 = one 次 + two 次
int one = 1;
int two = 2;
int sum = 0;
for (int i = 3 ; i <= n ; i++){
// 5步台阶的情况下 最后走一步为4步台阶,及 one = sum
// 最后一步走两步 即为3步台阶=4步台阶最后走一步 及two = one
sum = one + two;
two = one;
one = sum;
}
return sum;
}
3、总结