• java实现斐波那序列


    题目描述:

    (Fib.java)斐波那契数列(Fibonacci sequence):第0项是0,第1项是1,从第2项开始,每一项都等于前两项之和,结果是0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,...。

    (1)用while语句计算该数列前40个数,并把它们存放在整数(int)数组fibs中。 40用常量COUNT表示。

    (2)把上面得到的数列的前后两项的比值用for语句计算出来(前两项为0和1),并存放在另一个double类型的数组nums中。注意:整数除以整数会得到整数。

    (3)最后用foreach语句(见【预备知识】)把上一步的结果显示出来。

         *采用System.out.println()方法进行显示。

         观察:结果应该会逐渐接近黄金分割比例(0.618)。

        第三步完成后的运行截屏:



    源代码:

    public class Fib
    {
       public static void main(String args[])
       {
    	int fibs[]=new int[40];
    	double nums[]=new double[40];
    	int a = 0;
    	int b = 1;
    	int c = 0;
    	int i = 1;
    	while(i <= 37)
    	{
    		c = a + b;
    		fibs[i-1] = c;
    		a = b;
    		b = c;
    		i++;
    	}
    	final int COUNT = c;
    	fibs[i] = b + COUNT;
    	for(i=1; i<=36; i++)
    	{
    		//System.out.println(fibs[i-1]);
    		//System.out.println(fibs[i]);
    //因为整数除以整数会得到整数,
    //所以如果这里不先设好两个double类型的变量存储int数,
    //除出来始终为0
    		double aa = fibs[i-1],bb = fibs[i];
    		nums[i] = aa / bb;
    	}
    	for(double num:nums)
    	{
    		System.out.println(num);
    	}
        }
    }
    

             其实斐波那序列的代码核心思想在于定义两个变量(这里是a和b),用一个循环不断求其和,同时往前更新a和b的值。同时这题还有另外一个知识点,就是两个整数相除(小的数除以大的数会得到0)如何得到小数,方法是先将这两个int类型的数转换成double类型的数,然后再除。

  • 相关阅读:
    在windows上使用win2000资源工具
    Apache与Tomcat整合
    web服务器和应用服务器概念比较
    linux定时删除N天前的文件(文件夹)
    程序员如何自我学习和成长?
    20210708总结
    Docker 常用命令!还有谁不会?
    Redis常用命令set
    laravel与thinkphp之间的区别与优缺点
    2021年7月总结
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586512.html
Copyright © 2020-2023  润新知