当前位置:   article > 正文

PTA.龟兔赛跑问题_有一天,乌龟和兔子再大森林里赛跑。乌龟每分钟可以跑3米,兔子每分钟可以跑9米。骄

有一天,乌龟和兔子再大森林里赛跑。乌龟每分钟可以跑3米,兔子每分钟可以跑9米。骄

乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

输入格式:

输入在一行中给出比赛时间T(分钟)。

输出格式:

在一行中输出比赛的结果:乌龟赢输出@_@,兔子赢输出^_^,平局则输出-_-;后跟1空格,再输出胜利者跑完的距离。

输入样例:

242

结尾无空行

输出样例:

@_@ 726

结尾无空行

问题分析:

设时间为t,兔子在t时间内跑过的距离为s1,乌龟在t时间内跑过的距离为s2.

ts1(兔子9)s2(乌龟3)
000
109030
209060
309090
4090120
45135135
50180150
60180180
70180210
80180240
90270  ( 0 )270   (0)
90+10270+90(90)270+30(30)

      由表格可见,90分钟(即270米)为一个循环。

      在一个循环中,  0 到 30  、45 到 60  都是兔子跑的快;

                                 30 到45  、60 到90   都是乌龟跑的快;

代码实现:

  1. #include<stdio.h>
  2. int main(void)
  3. {
  4. int time;//时间
  5. int round,t;//round表示有多少循环,t表示最后一次完整循环剩余的时间
  6. int s;
  7. scanf("%d",&time);
  8. round = time / 90;
  9. t = time % 90;
  10. if( t == 0 || t == 30 || t == 45 || t == 60 )
  11. {
  12. printf("-_- %d",round * 270 + t * 3 );
  13. }
  14. else if ( (t < 30 && t > 45 ) || ( t > 60 && t < 90 ) )
  15. {
  16. printf("@_@ %d",round * 270 + t * 3);
  17. }
  18. else
  19. {
  20. if( t > 0 && t < 10 )
  21. {
  22. s = round * 270 + t * 9;
  23. }
  24. else if( t >10 && t < 30 )
  25. {
  26. s = round * 270 + 90;
  27. }
  28. else if( t > 45 && t < 50 )
  29. {
  30. s = round * 270 + (t - 45) *9 + 135;
  31. }
  32. else if( t > 50 && t < 60 )
  33. {
  34. s = round * 270 + 180;
  35. }
  36. printf("^_^ %d",s);
  37. }
  38. return 0;
  39. }

          

            

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/64448
推荐阅读
相关标签
  

闽ICP备14008679号