首页 新闻 会员 周边

一道要求用递归方法的笔试题

0
[已解决问题] 解决于 2010-10-22 07:22

甲乙两人骑自行车,某一时刻,相向而行,甲乙之间的距离为L,正好此时有个苍蝇从甲的轮子飞向乙,飞到乙后又飞到甲,如此往复。已知苍蝇的速度大于甲乙的速度,求什么时刻苍蝇被轮子挤死。要求用递归方法

LL999的主页 LL999 | 初学一级 | 园豆:182
提问于:2010-10-13 22:08
< >
分享
最佳答案
0

int bike1,bike2,fly;

private void FlyDie(int distance,int biketype)

{   

  if(distance==0)   

  {     

    return;   

  }   

  else   

  {     

    if(biketype==1)     

    {     

       //某人与苍蝇相遇时的时间 

       int t=distance/(bike1+fly);  

       //总距离减甲乙所走的距离,递归 

       FlyDie(distance-(bike1+bike2)*t,2);    

    }     

    else     

    {       

      int t=distance/(bike2+fly);      

      FlyDie(distance-(bike1+bike2)*t,1);    

    }   

  }

}

一滴血 | 小虾三级 |园豆:1602 | 2010-10-13 23:29
刚才的答案有点低级错误。。。
一滴血 | 园豆:1602 (小虾三级) | 2010-10-13 23:31
其他回答(2)
0

这道题要是不用递归算才好算呢  t = L/(v1+v2)。用递归多复杂,又浪费性能,建议你给考官提建议这样算。哈哈。(提示:苍蝇挂的时间 = 两人碰头的时间)

会长 | 园豆:12401 (专家六级) | 2010-10-14 11:55
0

这个问题的确很傻。。。。

hoodlum1980 | 园豆:559 (小虾三级) | 2010-10-30 23:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册