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
本文介绍了一种非递归方法来计算斐波那契数列中的指定项。通过迭代而非递归的方式,提高了计算效率,适用于较大数值的计算场景。
1万+

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



