链接:https://www.nowcoder.com/questionTerminal/1221ec77125d4370833fd3ad5ba72395?toCommentId=12698466
来源:牛客网

有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。
例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。
一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?

在这里插入图片描述

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        if(n==1||n==2){
            System.out.println(1);
            return;
        }
        int m1=0;//一月大的
        int m2=0;//两月大的
        int able=1;//有能力生的(大于三个月了)
        int count=1;//兔子总数
        for(int i=3;i<=n;i++){
            able+=m2;//2给月的长大变成能生的
            m2=m1;//1个月的长大变成2个月的
            m1=able;//有能力生的,生出了它自己数量的兔子
            count=able+m1+m2;
        }
        System.out.println(count);
    }