首页 > 其他 > 详细

关于斐波那契数列和递归

时间:2020-02-06 16:25:38      阅读:87      评论:0      收藏:0      [点我收藏+]

递归有三个基本点:

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

  结果如下:

技术分享图片

 

关于斐波那契数列和递归

原文:https://www.cnblogs.com/qinmin/p/12268870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!