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、总结




这篇博客探讨了两种计算斐波那契数列的方法:递归和循环迭代。递归方法直接通过调用自身来计算,而循环迭代则使用for循环和变量更新来逐步求解。两种方法都在处理较小的输入时有效,但对于大的n值,循环迭代通常更高效,因为它避免了重复计算。

1117

被折叠的 条评论
为什么被折叠?



