关于斐波那契数列和递归

递归有三个基本点:

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);
	}
}

  运行结果:

关于斐波那契数列和递归_第1张图片

 

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

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 
 

  结果如下:

关于斐波那契数列和递归_第2张图片

 

你可能感兴趣的:(关于斐波那契数列和递归)