public class FibonacciNotDigui {
/**
* 非递归的方法解决斐波那契数列问题
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long result = fibonacci(40);
System.out.println(result);
}
private static long fibonacci(int i) {
// TODO Auto-generated method stub
if(i==1||i==2)
return 1L;
else{
long l1 = 1L;
long l2 = 1L;
long l3 = 0L;
for(int j=0;j<i-2;j++){
l3 = l1+l2;
l1 = l2;
l2 = l3;
}
return l3;
}
}
}
每次相加都是前一个加上前面第二个,如果是第N个数,那么循环n-2次,每次循环,都应该更新一下l1,l2,就是依次往后挪一个数。
根据这个函数,第四十个数是:102334155
第48个数是:4807526976