引言
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardodaFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,其指的是这样一个数列:
0、1、1、2、3、5、8、13、21、34、⋯
在数学上,斐波那契数列以如下被以递推的方法定义:
F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2) (n ≥ 2,n∈N∗)
现给定一个正整数 n,请求出该数列中第 n 项的值是多少。
输入描述
输入仅 1行,包含一个整数 N。
0≤N≤25。
输出描述
输出一个整数,表示答案。
输入输出样例
示例
- 输入
3
- 输出
2
运行限制
最大运行时间:1s
最大运行内存: 128M
解题思路
由题所示:
- a[0] = 0
- a[1] = 1
- a[2] = a[0]+a[1]
- …
得到递归式a[n] = a[n-1]+a[n-2],然后再找到递归出口a[0] = 0,a[1] = 1
这样就很容易写出递归函数以此求解。
代码部分
- 求斐波那契的递归函数
static int fb(int n){
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return fb(n-1)+fb(n-2);
}
- 总的代码
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println(fb(n));
br.close();
}
static int fb(int n){
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return fb(n-1)+fb(n-2);
}
}