java关于兔子问题

来源:互联网 发布:linux 监听端口 编辑:程序博客网 时间:2024/05/16 14:46
/**
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第10个月的兔子总数为多少? 


第一个月 1对小兔子                              1
第二个月 1对大兔子 1
第三个月 1对老兔子+1对小兔子 2
第四个月 1对老兔子+1对大兔子+1对小兔子 3
第五个月 2对老兔子+1对大兔子+2对小兔子 5
第六个月 3对老兔子+2对大兔子+3对小兔子 8
第七个月 5对老兔子+3对大兔子+5对小兔子 13
第八个月 8对老兔子+5对大兔子+8对小兔子 21
第九个月 13对老兔子+8对大兔子+13对小兔子 34
第十个月 21对老兔子+13对大兔子+21对小兔子 55


总结规律: 从第三个月开始,第n个月的兔子的对数 = 第n-1个月的兔子的对数+第n-2个月的兔子的对数


int i = 1 ; //第一个月的兔子的对数    n-2
int j = 1 ;// 第二个月的兔子的对数    n-1
int w = 0 ; //第三个月的兔子的对数  n


求第四月的兔子的总数?
i = j ;  
j = w ;
w = i+j ;


for(int a = 3 ; a <= 10 ; a++) //a代表月数
{
w = i+j ;
i = j ;
j = w ;
}
//程序运行到这,循环结束,兔子的总队数已经得到




*/
public class Lx15
{
public static void main(String[] args)
{
int i = 1; //第一个月的兔子对数
int j = 1 ; //第二个月的兔子对数
int w = 0 ;  //第n个月的兔子对数


for(int a = 3 ; a <= 10 ; a++) //a代表的是月数
{
w = i+j ; //第a个月的兔子   
i = j ;   //第a-1个月的兔子
j = w ;   // 第a-2个月的兔子


}
//程序运行到这,指定月数的兔子的对数已经求得
int sum = w * 2 ;
System.out.println("第十个月的兔子的总数是:"+sum);

}
}
原创粉丝点击