古典问题,斐波那契兔子的问题

for (int i = 3; i < date; i++) {
        int f3;
        f3 = f2;
        f2 = f1 + f2;
        f1 = f3;
        System.out.println("第" + i + "月的兔子数量是:" + f2);
    }

我这样写的一串判断,为什么 f1 = f3;  f3=f1就不行吗,能讲解下吗

f3是作为临时变量的,只在for循环中使用,f1,f2记录前两轮计算的结果,而且需要考虑int长度不足问题,建议使用long类型。
完整的代码示例:

    public static long fabonacci(int date){
        long f1 = 0;
        long f2 = 1;
        for (int i = 3; i <= date; i++) {
            long f3;
            f3 = f2;
            f2 = f1 + f2;
            f1 = f3;
            System.out.println("第" + i + "月的兔子数量是:" + f2);
        }

        return f2;
    }