/**
* Fibonacci
* 1.使用递归 求出40的数值
* 2.使用非递归调用 求出40的数值
* 3.画图理解 递归调用
* F1 = 0;
* F2 = 1;
* Fn = Fn-1 + Fn-2;
* */
public class Recursion {
public static void main(String[] args){
//System.out.println(fib(40));//102334155
//非递归调用
System.out.println(nfib(40));//102334155
}
public static int fib(int n){
if(n<1){
return -1;//-1 表示传入的参数异常
}
if(n==1||n==2){
return 1;
}else{
return fib(n-1) + fib(n-2);
}
}
public static long nfib(int index){
if(index<1){
return -1;
}
if(index == 1 || index ==2){
return 1;
}else{
long f1 = 1;
long f2 = 1;
long f = 0;
//index-2
for(int i = 0;i<index-2;i++){
f = f1+f2;
f1 = f2;
f2 = f;
}
return f;
}
}
}
递归
最新推荐文章于 2022-10-28 14:22:20 发布