java题意问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:22:07
已知菲波那契数列的数学表达式为:
fibonacci(n)=n, n=0,1;
fibonacci(n)=fibonacci(n-2)+fibonacci(n-1) , n≥2;
要求该数列产督最大不超过10 用递归方法来求菲波那契数列

我是学过递归法,可是我还是不大明白这个公式是怎么回事,有人能给我讲讲这道题的题意吗? 不是太懂 我是刚学JAVA的新手,请多见谅。我不想知道答案。我只想明白这公式是怎么回事。谢谢了
我还是没有掌握他们的规律 。。。。

菲波那契数列的意思是:
n=0或1时
f(0) = 0
f(1) = 1
n>=2时
f(2) = f(1) + f(0) = 1 + 0 = 1
f(3) = f(2) + f(1) = 1 + 1 = 2
f(4) = f(3) + f(2) = 2 + 1 = 3
f(5) = f(4) + f(3) = 3 + 2 = 5
f(6) = f(5) + f(4) = 5 + 3 = 8
…………

public int calcFibonacci(int n) {
if (n < 0) throw new RuntimeException("数列的下标必须大于等于零");
if (n >= 10) throw new RuntimeException("必须计算不超过10的菲波那契数列");
if (n == 0) return 0;
if (n == 1) return 1;
return calcFibonacci(n - 1) + calcFibonacci(n - 2);
//上面三句也可以改成
//return (n <= 1) ? n : calcFibonacci(n - 1) + calcFibonacci(n - 2);
}

fibonacci(n)=n, n=0,1;

当n=0时,fibonacci(0)=0;
当n=1时,fibonacci(1)=1;
fibonacci(n)=fibonacci(n-2)+fibonacci(n-1) , n≥2;
当n>=2时,fibonacci(n)=fibonacci(n-2)+fibonacci(n-1)

比如 n=2时,fibonacci(2)=fibonacci(0)+fibonacci(1)=1
n=3时,fibonacci(3)=fibonacci(1)+fibonacci(2)=