对码当歌,猿生几何?

java斐波拉契数列的顺序输出

斐波拉契数列,即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

这里最重要的是把已经计算过的值保存起来,再次遇到该值时直接返回,才不会重复计算,从而使得程序运行效率更高,也保证输出结果不会重复。