算法-动态规划-斐波那契数
题目描述:
斐波那契数,通常用 F(n)
表示,形成的序列称为 斐波那契数列 。该数列由 0
和 1
开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n
,请计算 F(n)
。
递归法:
// 特别耗时 O(2^n)
public int fibDiGui(int n) {
if(n<=1){
return n;
}
return fib(n-1)+fib(n-2);
}
普通计算法:
// 一般耗时 O(n)
public int fibBaoLi(int n) {
int n1 = 0,n2=1,ns = 0;
while(ns++<=n){
if(ns%2==0){
n1+=n2;
}else{
n2+=n1;
}
}
return n%2==0?n1:n2;
}