Java实现斐波那契数列的多种方法

小编综合了很多算法相关的书籍以及其他,总结了几种求斐波那契数列的方法

PS:其中的第83行的递归法是求斐波那契数列的经典方法


public class 斐波那契数列 {
	
	  //迭代法
    public static int iteration(int n){   /*此处(包含下面所有方法)声明为静态方法,原因是在本类main()方法中调用
        类中方法,对于一般的非static成员变量或方法,需要有一个对象的实例才能调用,所以要先生成对象的实例,他们才会实际的分配内存空间。
        而对于static的对象或方法,在程序载入时便已经分配了内存空间,他只和特定的类想关联,无需实例化  */
        int result = 1;  //最后一个斐波那契数
        int a[] = new int[n+1];    //存放斐波那契数,初始值为空,默认全为0
        a[0] = 0;
        a[1] = 1;
        //System.out.println("迭代法计算斐波那契数结果:");
        //System.out.print(a[0]+"  "+a[1]+"  ");
        for(int i = 2;i < n+1;i++){
            a[i] = a[i-1] + a[i-2];
            //result = a[i];
            //System.out.print(result+"  ");        //打印斐波那契数
        }
        //System.out.println();
        result=a[n];
        return result;    //返回最后一个斐波那契数
    }
    
    //用迭代法寻找编程环境支持的最大整数(int型)的斐波那契数是第几个斐波那契数
    public static int max_int_iteration(){
        int a = 1,b = 1,c = 2;
        int count = 3;
        for( ;b < c; ){   //一旦c达到编程环境最大斐波那契数,便会产生内存溢出,从而变成一个负数,到此循环结束
            a = b;
            b = c;
            c = a + b;
            count++;
        }
        return count;
    }
    
    
    //用迭代法寻找编程环境支持的最大整数(long型)的斐波那契数是第几个斐波那契数
    public static long max_long_iteration(){
        long a = 1,b = 1,c = 2;
        long count = 3;
        for( ;b<c; ){    //一旦c达到编程环境最大斐波那契数,便会产生内存溢出,从而变成一个负数,到此循环结束
            a = b;
            b = c;
            c = a + b;
            count++;
        }
        return count;
    }
    
    //在1,5,10,50秒内使用迭代法算出的最大斐波那契数是第几个
        public static void time_iteration(){
            int a = 1,b = 1,c = 2;
            long
  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值