斐波切纳 数列 java

来源:互联网 发布:席德梅尔 知乎 编辑:程序博客网 时间:2024/05/19 23:25


package aaa;import java.util.Date;public class Fibo{//方式1 public static void fiBoCzene(Long a,Long b,Integer i){if (i>3) {i--;Long c = null;c=a;a=b;b=c+b;fiBoCzene(a, b,i);}else {System.out.println(a+b);}}//方式二:递归方式   public static Long fibonacci(int n){          if(n <= 2){              return 1L;          }else{              return fibonacci(n-1) + fibonacci(n-2);          }      }// 方式三:递推实现方式     public static Long fibonacciNormal(int n){         if(n <= 2){             return 1L;         }         Long n1 = 1L, n2 = 1L, sn = 0L;         for(int i = 0; i < n - 2; i ++){             sn = n1 + n2;             n1 = n2;             n2 = sn;         }         return sn;     } public static void main(String[] args) {//现在有的水数Integer c=31;Long date = System.currentTimeMillis();fiBoCzene(0L,1L,c+1);Long date2 = System.currentTimeMillis();System.out.println("----方式一耗时------"+(date2-date));System.out.println(fibonacciNormal(c));Long date3 = System.currentTimeMillis();System.out.println("-----方式二耗时-----"+(date3-date2));System.out.println(fibonacci(c));Long date4 = System.currentTimeMillis();System.out.println("-----方式三耗时-----"+(date4-date3));}}