写在前面:
为了增长一下自己的数据结构能力,也为了面试准备,准备将剑指Offer做一下,并与各位分享,希望各位可以对代码以及思路提提建议,欢迎志同道合者,谢谢。
题目
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
思路:
首先要知道什么是斐波那契数列
斐波那契数列(Fibonacci sequence),又称[黄金分割]数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
具体的大家可以去百度一下,但是这个公式要记住
好了进入代码环节
package com.itzmn.offer;
/**
* @Auther: 张梦楠
* @Date: 2018/7/28 11:28
* 简书:https://www.jianshu.com/u/d611be10d1a6
* 码云:https://gitee.com/zhangqiye
* @Description:
*
* 0、1、1、2、3、5、8、13、21
*
*/
public class Offer7 {
public static void main(String[] args) {
int i = new Offer7().Fibonacci(8);
System.out.println(i);
}
public int Fibonacci(int n) {
if (n<=2 && n>0){
return 1;
}
if (n <= 0){
return 0;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
希望大家可以多多指点,优化一下,
QQ群:552113611