(java实现)


问题

题目描述:
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

本题有多组数据。
输入描述:
输入int型表示month
输出描述:
输出兔子总数int型
示例1:

输入

9

输出

34

问题分析:

注意:是第三年开始生子,不是三年后开始生子;

相关知识:

算法实现:

参考代码:

import java.util.*;
 
public class Main {
         
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        while (input.hasNext())
        {
            String line = input.nextLine();  //因为有多组数据,需要将每次以行来读入,next没有读入换行符
            int num = Integer.parseInt(line);//将读入的字符串转为整数
            int sum=0;
            int i3 = 1;
            int i2 = 0;
            int i1 = 0;
            for (int i=1; i<num-1; i++)
            {
                i3 = i3 + i2;   //第三年开始生子,不是三年后开始生子
                i2 = i1;      //记录年龄数
                i1 = i3;      //记录生子数
            }
            sum = i3 + i2 + i1;       //统计数目
            System.out.println(sum);
        }
    }
}