首页 > 代码库 > 算法小节(一)——斐波那契数列(java实现)
算法小节(一)——斐波那契数列(java实现)
看到公司的笔试题中有一道题让写斐波那契数列,自己忙里偷闲写了一下
什么是斐波那契数列:斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368这个数列从第二项开始,每一项都等于前两项之和。
特别指出:第0项是0,第1项是第一个1。
注:此时a1=1,a2=1,an=a(n-1)+a(n-2)(n>=3,n∈N*)
代码:
/**
* Created by zhangjianchao
*/
public class TestAlgorithm {
public static void main(String[] args){
Fibonacii fibonacii = new Fibonacii();
System.out.println("final次="+fibonacii.fibonacii(9));
}
}
class Fibonacii{
public long fibonacii(long n){
int fn1 = 1; //第n-1项
int fn2 = 1; //第n-2项
int fn = 0; //第n项
if(n<=2){ //数列的前两项都为1
return 1;
}
//计算第n项,同时将前n-2项及n-1项重新计算
for(int i = 0;i < n-2;i++){
fn = fn1 + fn2;
fn2 = fn1;
fn1 = fn;
System.out.println("第" + i + "次 fn(" + fn + ") = fn1(" + fn1 + ") + fn2(" + fn2 + ")");
}
return fn;
}
}
* Created by zhangjianchao
*/
public class TestAlgorithm {
public static void main(String[] args){
Fibonacii fibonacii = new Fibonacii();
System.out.println("final次="+fibonacii.fibonacii(9));
}
}
class Fibonacii{
public long fibonacii(long n){
int fn1 = 1; //第n-1项
int fn2 = 1; //第n-2项
int fn = 0; //第n项
if(n<=2){ //数列的前两项都为1
return 1;
}
//计算第n项,同时将前n-2项及n-1项重新计算
for(int i = 0;i < n-2;i++){
fn = fn1 + fn2;
fn2 = fn1;
fn1 = fn;
System.out.println("第" + i + "次 fn(" + fn + ") = fn1(" + fn1 + ") + fn2(" + fn2 + ")");
}
return fn;
}
}
算法小节(一)——斐波那契数列(java实现)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。