斐波拉契数列,即1、1、2、3、5......,从第三个数开始包括第三个数,都为这个数的前两个数之和,而第一第二个数都为1。
下面是java输出斐波拉契数列的代码:
import java.util.HashMap;public class Test{//定义一个hashMap来存储已经计算并且输出过的值public static HashMap<Integer, Integer> hashMap = new HashMap<Integer,Integer>(); //递归方法public static int digui(int num) {//判断这个值是否已存在,若存在则直接返回该值if(hashMap.containsKey(num)) {return hashMap.get(num); }if(num<=2) { System.out.print(1+" "); hashMap.put(num, 1);return 1; }int sum = digui(num-1)+digui(num-2); System.out.print(sum+" "); hashMap.put(num, sum);return sum; }public static void main(String [] args){ digui(10); } }
输出结果为:
1 1 2 3 5 8 13 21 34 55
这里最重要的是把已经计算过的值保存起来,再次遇到该值时直接返回,才不会重复计算,从而使得程序运行效率更高,也保证输出结果不会重复。