斐波那契数列的递归方法和用数组保存中间值方法

来源:互联网 发布:詹姆斯季后赛数据统计 编辑:程序博客网 时间:2024/05/30 20:09
package Basic;public class Fib {public static void main(String[] args) {int N = 50;long t1 = System.currentTimeMillis();long c = F(N);long t2 = System.currentTimeMillis();System.out.println("running time is:"+(t2-t1)+"ms.");System.out.println(c);}public static long F(int n) {// TODO Auto-generated method stubif(n == 0){return 0;}if(n == 1){return 1;}return F(n-1) + F(n-2);}}

保存中间值:

package Basic;public class Fib1 {static int N = 50;static long[] a = new long[N];public static void main(String[] args) {a[0] = a[1] = 0;long t1 = System.currentTimeMillis();long c = F(N);long t2 = System.currentTimeMillis();System.out.println("running time is:"+(t2-t1)+"ms.");System.out.println(c);}public static long F(int n) {// TODO Auto-generated method stubif(n == 0)  //终止条件return 0;if(n == 1)  //终止条件return 1;if(a[n-1] != 0)    //如果有 就直接用return a[n-1];a[n-1] = F(n-1) + F(n-2); //计算某一次n的结果保存在数组中return a[n-1];}}


0 0
原创粉丝点击