递归实现形式
public class TestRecursion {
public static void main(String[] args) {
System.out.println(F(6));
}
static long F(int n){
if(n==1||n==2) return 1;
else
return F(n-1)+F(n-2);
}
}
非递归实现形式
public class TestFab {
public static void main(String[] args) {
System.out.println(f(6));
}
static long f(int n){
if(n==1||n==2) return 1;
long f1=1L;
long f2=1L;
long f=0;
for(int i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
return f;
}
}
非递归实现中,应该注意在循环的过程中找到一个相似的过程,通过数据的交换实现。
本文介绍斐波那契数列的递归与非递归两种实现方式,并对比了它们之间的区别。递归实现简洁但效率较低,而非递归实现虽然代码稍显复杂,但运行效率更高。
8万+

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



