代码实现:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

import java.math.BigInteger;
import java.util.Scanner;

/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 
 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
 */
public class Test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入月数: ");
		int n = sc.nextInt();
		BigInteger big;
		BigInteger[] arr = new BigInteger[n];
		for (int i = 0; i < arr.length; i++) {
			if (i == 0 || i == 1) {
				big = BigInteger.valueOf((long) 1);
				print(big, arr, i);
			} else {
				big = (arr[i - 1]).add(arr[i - 2]);
				print(big, arr, i);
			}
		}
	}

	public static void print(BigInteger big, BigInteger[] arr, int i) {
		arr[i] = big;
		StringBuffer sb = new StringBuffer();
		String s = sb.append(big).toString();
		System.out.println("第" + (i + 1) + "个月生出" + s + "对兔子");
	}
}

 

posted on 2017-03-09 19:15  LoaderMan  阅读(1826)  评论(0编辑  收藏  举报

导航