JAVA 基础编程练习题1 【程序 1 不死神兔】

1 【程序 1 不死神兔】

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

程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21....

package cskaoyan;

import org.junit.Test;

public class cskaoyan1 {

	// 递归
	@Test
	public void show1() {
		int month = 12;
		System.out.println("第" + month + "个月兔子对数为" + getRabbitNumber1(12));
	}

	public int getRabbitNumber1(int month) {
		if (month == 1 || month == 2) {
			return 1;
		} else {
			return getRabbitNumber1(month - 1) + getRabbitNumber1(month - 2);
		}
	}

	// 非递归
	@Test
	public void show2() {
		int month = 12;
		getRabbitNumber2(month);
	}

	public void getRabbitNumber2(int month) {
		int number1 = 1;
		int number2 = 1;
		int count = 0;
		for (int i = 1; i <= month; i++) {
			if (i == 1 || i == 2) {
				System.out.println("第" + i + "个月兔子对数为" + number1);
			} else {
				count = number1 + number2;
				number2 = number1;
				number1 = count;
				System.out.println("第" + i + "个月兔子对数为" + count);
			}
		}
	}
}

猜你喜欢

转载自www.cnblogs.com/denggelin/p/11261699.html