关于斐波那契数列和递归

Posted qinmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于斐波那契数列和递归相关的知识,希望对你有一定的参考价值。

递归有三个基本点:

1.递归总有一个最简单的情况。即边界或者跳出递归的条件语句;

2.递归总是尝试解决一个规模更小的问题;

3.递归尝试解决的父问题和子问题之间不因该有交集;

 

以下是几个递归代码://斐波那契数列

import edu.princeton.cs.algs4.StdOut;

public class No_1_1_19 {
	public static void main(String[] args)
	{
		for(int n=0;n<10;n++)
		{
			StdOut.println(n+" "+f(n));
			
		}
	}
	
	public static long f(int n)
	{
		if(n==0)
			return 0;
		if(n==1)
			return 1;
		
		return f(n-1)+f(n-2);
	}
}

  运行结果:

技术图片

 

用一个数组来存储斐波那契数列,并且用循环来实现;

import edu.princeton.cs.algs4.StdOut;

public class No_1_1_19 {
	public static void main(String[] args)
	{
		int n=20;
		
	int[] a = new int[n];
	a[0]=0;
	a[1]=1;
	for(int i=2;i<n;i++)//用循环来实现
	{
		a[i] = a[i-1] + a[i-2];
	}
	
	for(int i=0;i<n;i++)//输出结果
		StdOut.println(i+" "+a[i]);
	
}
}

  结果如下:

技术图片

 

以上是关于关于斐波那契数列和递归的主要内容,如果未能解决你的问题,请参考以下文章

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码

python递归求斐波那契数列前10项

编写一递归函数求斐波那契数列的前40项

用递归法计算斐波那契数列的第n项

递归优化的斐波那契数列

编程实践Linux Shell 编程:使用 循环和递归 实现斐波那契数列代码