兔子繁衍问题
作者:互联网
【问题描述】
古典问题:有一只兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子的对数为多少?
【程序分析】
由题意可列出以下表格:
月份/兔龄 | 幼年兔 | 成长兔 | 成年兔 | 总对数 |
1 | 1 | 0 | 0 | 1 |
2 | 0 | 1 | 0 | 1 |
3 | 1 | 0 | 1 | 2 |
4 | 1 | 1 | 1 | 3 |
5 | 2 | 1 | 2 | 5 |
6 | 3 | 2 | 3 | 8 |
7 | 5 | 3 | 5 | 13 |
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