当前位置: 代码迷 >> Java相关 >> [分享]几道编程题,南开大学程序竞赛热身赛的试题~
  详细解决方案

[分享]几道编程题,南开大学程序竞赛热身赛的试题~

热度:134   发布时间:2007-03-26 18:21:13.0

不懂


----------------解决方案--------------------------------------------------------

分解开就成了1、1、2、3、5、8、13........这样就好算了,但是要是模拟兔的生育过程,再用个计数器算出个数,这样该怎么做呢


----------------解决方案--------------------------------------------------------
千里,我也是在很差的学校,还没毕业,而且这个学校及不重视软件
----------------解决方案--------------------------------------------------------

在学校时还是应该多学点基础课程的,并且要学的扎实,当你工作的时候接触新的东西会接触的比较快


----------------解决方案--------------------------------------------------------
不要太在意学校的好坏,重要的是自己
----------------解决方案--------------------------------------------------------

昨天经过一个晚上的冥思苦想,终于把玉兔问题给搞定了,完全是模拟兔的生育过程,现在兔是满3月生小兔,假如是2,或4月,或5月,只需改改参数就可以了,呵呵
public class Robit{
private int birthmonth;//兔的出生月份
Robit (int i){
birthmonth=i;
}
public int getbirth(){
return birthmonth;//获取该兔出生月份
}
public static void main (String args[]){
int counter=1;//计算兔的数量
int month=10;//假定10个月
Robit[] robits=new Robit[100];//预分配100只兔的空间
robits[1]=new Robit(1);
for(int i=1;i<=month;i++){
for(int j=1;j<=counter;j++){//每个月遍历一遍现有的兔
if((i-robits[j].getbirth())>=2){//如果该兔满3个月,则可以生小兔,也可以改,如果是2个月就生小兔,可以改成1
counter++;
robits[counter]=new Robit(i);
}
}
System.out.println("第"+i+"个月共有"+counter+"

对兔");
}
}

}

[此贴子已经被作者于2007-3-30 10:20:46编辑过]


----------------解决方案--------------------------------------------------------

我也七月份就毕业 了
虽然工作单位和java一点都沾不上边
不过我还是喜欢java


----------------解决方案--------------------------------------------------------
多是强人..
----------------解决方案--------------------------------------------------------
为什么兔子之间可以近亲生育啊?
----------------解决方案--------------------------------------------------------
/*
第n个月的兔子数量=第n-1个月的兔子数量+第n个月生下来的兔子数量
第n个月生下来的兔子数量=第n-1个月成熟的兔子数量
第n-1个月成熟的兔子数量=第n-2个月的兔子数量
*/
int tuzi(int n)
{
if(n==0)
return 0;
else if(n<3)
return 1;
return tuzi(n-1)+tuzi(n-2);
}
----------------解决方案--------------------------------------------------------
  相关解决方案