面试题:请写出斐波那契的第n项的代码实现

什么是裴波那契数列?裴波那契数列是以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34……即从第3个数开始,F(n)=F(n-1)+F(n-2),所以斐波纳契数列以如下方法定义:
F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)

// 1、1、2、3、5、8、13、21、34
	/**
	 * 迭代法
	 */
	public static int peiBo(int n) {
		if (n <= 0)
			return 0;
		int a = 0;
		int b = 1;
		while (n > 0) {
			b = a + b;
			a = b - a;
			n--;
		}
		return a;
	}

	/**
	 * 递归
	 */
	public static int peiBoDiGui(int n) {
		if (n <= 0)
			return 0;
		if (n == 1)
			return 1;
		return peiBoDiGui(n - 2) + peiBoDiGui(n - 1);
	}

	public static int jumpFloor(int target) {
		if (target <= 0)
			return 0;
		if (target == 1)
			return 1;
		if (target == 2)
			return 1;
		if (target == 3)
			return 2;
		int a = 1;
		int b = 2;
		while (target > 2) {
			b = a + b;
			a = b - a;
			target--;
		}
		return a;
	}

	public static void main(String[] args) {
		System.out.println(peiBo(9)); // 34
		System.out.println(peiBoDiGui(9)); //34
		System.out.println(jumpFloor(9)); //34
	}
发布了185 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39309402/article/details/102619413
今日推荐