java 每日习题(三)兔子问题

/*
* Java练习题:兔子问题

此问题又叫斐波那契数列(Fabonacci),是最先研究这个数列的人是比萨的列奥那多(又名费波那契),他描述兔子生长的数目时用上了这数列。

第一个月有一对刚诞生的兔子
第二个月之后它们可以生育
每月每对可生育的兔子会诞生下一对新兔子
兔子永不死去
*/

package everyDay;


public class Tutu {

    public static void main(String[] args) {

        int month = 12;
        int sum;
        int L1 = 1;
        int newL1;
        int L2 = 0;
        int newL2;
        int L3 = 0;
        int newL3;

        for (int i = 1; i <= month; i++) {
            sum = L1 + L2 + L3;

            System.out.println("sum: " + sum);

            newL2 = L1;// L1 升级 L2

            newL3 = L2;// L2 升级 L3

            newL1 = L3 + newL3;// L3 生产 L1

            L1 = newL1;
 
            L2 = newL2;

            L3 = L3 + newL3;

        }

    }

}
View Code

 网上找的方法不清楚为什么初始化n1,n2都是1

import java.util.Scanner;

public class Tutu2 {
    public static void main(String[] args){
        int n1,n2,n3,month;   //n1,n2,n3 用作每月兔子数目的传递
        System.out.print("请输入需要计算的月份数:");
        Scanner sc=new Scanner(System.in);
        month=sc.nextInt();
        n1=1;
        n2=1;
        System.out.println("第1个月的兔子对数:"+n1);
        System.out.println("第2个月的兔子对数:"+n2);
        //依次传递,只需一次运算
        for(int i=1;i<month;i++) {
            n3=n1+n2;
            n1=n2;
            n2=n3;
            System.out.println("第"+month+"个月的兔子对数:"+n3);
        }
    }
}

 

转载于:https://www.cnblogs.com/mtlogs/p/4959055.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值