我有一壶酒,足以慰平生。

0%

牛客刷题之兔子繁殖

一、兔子繁殖

题目链接

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

1
2
3
4
5
6
7
8
9
10
/**
* 统计出兔子总数。
*
* @param monthCount 第几个月
* @return 兔子总数
*/
public static int getTotalCount(int monthCount)
{
return 0;
}

二、输入描述

1
输入int型表示month

三、输出描述

1
输出兔子总数int型

示例:

输入:12

输出:144

四、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.lcx.niuke;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Rabbit {
public static int getTotalCount(int monthCount) {
Map<Integer, Integer> map = new HashMap<>();
int f1=1,f2=1;
map.put(1,1);
map.put(2,1);
for (int i = 3; i <= monthCount; i++) {
map.put(i,map.get(i-1)+map.get(i-2));
}
return map.get(monthCount);
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int mountCount = scanner.nextInt();
System.out.println(getTotalCount(mountCount));
}
}
}

五、思路

经过列表分析,得到规律,是斐波那契数列,采用map集合将月份与兔子总数一一对应。

采用消耗空间的办法,来减少程序运行时间。

代码已上传至github

您的支持是我继续创作的动力