其他分享
首页 > 其他分享> > 兔子繁衍问题

兔子繁衍问题

作者:互联网

【问题描述】

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

【程序分析】

由题意可列出以下表格:

月份/兔龄幼年兔成长兔成年兔总对数
11001
20101
31012
41113
52125
63238
753513

n

(n-1)+(n-2)(n-1)+(n-2)(n-1)+(n-2)(n-1)+(n-2)

由表可得出规律,除了第一二月份总对数为1只,其他月份都是上个月兔子对数+上上个月兔子对数,即可得出该这一题目为斐波那契数列:f(n)=f(n-1)+f(n-2) (n>=3)

【代码如下】

public class Prog1{
	public static void main(String[] args){
		int n=10;
		System.out.println("第"+n+"个月兔子总数为"+fun(n));
	}
	private static int fun(int n){
		if(n==1||n==2)
			return 1;
		else
			return fun(n-1)+fun(n-2);
	}
}

【知识点补入】

public和private是访问权限修饰符,用于控制外界对类内部成员的访问。 public:表明对象成员是完全共有的,外界可以随意访问。 private:表明对象成员是完全私有的,不容许外界的任何访问。 static和final是控制类成员变化的修饰符。

标签:int,繁衍,兔子,问题,private,fun,对数,public
来源: https://blog.csdn.net/qq_62936321/article/details/123594578