java经典算法|斐波拉契数列

兔子繁殖问题

问题描述

       有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

问题分析

       这里以20个月为例,第1个月(0对大兔子、1对小兔子)和第1个月(1对大兔子、0对小兔子)共1对兔子,从第3个月开始起每月都生1对兔子,兔子数为2对(1对大兔子、1对小兔子第1月的兔子繁繁殖第1对小兔子),第4个月兔子数为3对(2对大兔子、1对小兔子第1个月的大兔子繁殖第2对小兔子),第5个月兔子数为5对(3对大兔子、2对小兔子第1月的兔子繁殖第3对兔子,第3月的兔子繁殖第1对兔子…依此类推)

代码实现

public class Fibonacci {
    public static void main(String[] args) {
        int f1 = 1, f2 = 1, f;
        System.out.print(f1 + " ");
        System.out.print(f2 + " ");
        int K = 20;
        for (int i = 3; i < K; i++) {
            f = f2;
            f2 = f1 + f2;
            f1 = f;
            System.out.print(f2 + " ");
        }
        System.out.println();
    }
}

运行结果

java经典算法|斐波拉契数列

上一篇:dotnet C# 多次对一个对象调用构造函数会发生什么


下一篇:Java - File 之 mkdir() & mkdirs() 区别