递归算法问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不会死。问: 第20个月的兔子总对数为多少?(提示:先分析兔子的增长规律)

递归算法问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不会死。问: 第20个月的兔子总对数为多少?(提示:先分析兔子的增长规律)

代码:

package main;

import java.util.Scanner;

public class Works {

	public static void main(String[] args) {
		System.out.println("请输入月份:");
		Scanner scanner = new Scanner(System.in);
		int m = scanner.nextInt();
		int rabbit = rabbit(m);
		System.out.println("第" + m + "个月的兔子数目为: " + rabbit);
	}

	public static int rabbit(int mouth) {
		if (mouth == 1 || mouth == 2) {
			return 1;
		}
		// 上一个月的兔子数
		int rabbit1 = rabbit(mouth - 1);
		// 上一个月的前一个月兔子数
		int rabbit2 = rabbit(mouth - 2);
		return rabbit1 + rabbit2;
	}

}

结果:

递归算法问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不会死。问: 第20个月的兔子总对数为多少?(提示:先分析兔子的增长规律)_第1张图片

你可能感兴趣的:(javaSE)