题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int months = in.nextInt();
        ArrayList<Rabbit> rabbits = new ArrayList<>();
        rabbits.add(new Rabbit(0));
        ArrayList<Rabbit> newBorn;

        for (int i = 0; i < months; i++) {
            newBorn = new ArrayList<>();
            for (Rabbit rabbit : rabbits) {
                // 在for遍历过程中,将新生的兔子加入newBorn集合中
                if (++rabbit.living > 2) {
                    newBorn.add(rabbit.giveBirth());
                }
            }
            rabbits.addAll(newBorn);
        }

        System.out.println(rabbits.size());
    }
}

class Rabbit {
    int living;

    public Rabbit(int living) {
        this.living = living;
    }

    public Rabbit giveBirth() {
        return new Rabbit(1);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务