统计每个月兔子的总数

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

数据范围:输入满足 1≤n≤31

输入描述:

输入一个int型整数表示第n个月

输出描述:

输出对应的兔子总数

示例1

输入
3
输出
2

Java 编程

package cn.net.javapub.javaintroduction.example;

/**
 * @author: shiyuwang
 */

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;

        while ((str = br.readLine()) != null) {
            int n = Integer.parseInt(str);
            int cur = 1;
            int pre = 1;
            int tmp = 0;

            for (int i = 3; i <= n; i++) {
                tmp = cur;
                cur += pre;
                pre = tmp;
            }

            System.out.println(cur);
        }
    }
}

展示效果:

华为OD机试 - 统计每个月兔子的总数 (Java 2024 E卷 100分)_算法