java-HJ37_统计每个月兔子的总数

java-HJ37 统计每个月兔子的总数

import java.util.Scanner;

// F(i)(总) = F(i)(幼兔1) + F(i)(幼兔2) + F(i)(成兔)
// F(i-1)(总) = F(i-1)(幼兔1) + F(i-1)(幼兔2) + F(i-1)(成兔)
//
// F(i+1)(幼兔2) = F(i)(幼兔1)
// F(i+1)(成兔) = F(i)(幼兔2) + F(i)(成兔)
// F(i+1)(幼兔1) = F(i+1)(成兔) = F(i)(幼兔2) + F(i)(成兔)
//
// F(i)(幼兔2) = F(i-1)(幼兔1)
// F(i)(成兔) = F(i-1)(幼兔2) + F(i-1)(成兔)
//
// F(i+1)(总) = F(i+1)(幼兔1) + F(i+1)(幼兔2) + F(i+1)(成兔)
//            = F(i)(幼兔2) + F(i)(成兔) + F(i)(幼兔1) + F(i)(幼兔2) + F(i)(成兔)
//            = F(i)(总) + F(i)(幼兔2) + F(i)(成兔)
//            = F(i)(总) + F(i-1)(幼兔1) + F(i-1)(幼兔2) + F(i-1)(成兔)
//            = F(i)(总) + F(i-1)(总)
//
// F(i+1)(总) = F(i)(总) + F(i-1)(总)
public class Main {
    // 二维数组
    // public static void main(String[] args) {
    //     Scanner in = new Scanner(System.in);

    //     int n = in.nextInt();

    //     int[][] rabit = new int[n+1][3];
    //     rabit[1][0] = 1;

    //     for(int i=2; i<=n; i++){
    //         // rabit[i][0] = rabit[i-1][2];
    //         rabit[i][1] = rabit[i-1][0];
    //         rabit[i][2] = rabit[i-1][1] + rabit[i-1][2];
    //         rabit[i][0] = rabit[i][2];
    //     }

    //     int result = rabit[n][0]+rabit[n][1]+rabit[n][2];

    //     System.out.print(result);
    // }

    // 递归
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();

        int result = F(n);

        System.out.print(result);
    }

    private static int F(int month){
        if(month==1 || month==2){
            return 1;
        }
            
        return F(month-1)+F(month-2);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值