递归实现形式
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;
}
}
非递归实现中,应该注意在循环的过程中找到一个相似的过程,通过数据的交换实现。