当前位置:   article > 正文

7-22 龟兔赛跑(分数 20)_乌龟与兔子在一条长为 l 的跑道赛跑,跑道边可以随地进行休息。兔子每分钟前进

乌龟与兔子在一条长为 l 的跑道赛跑,跑道边可以随地进行休息。兔子每分钟前进

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

输入格式:

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

输出格式:

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

样例:">样例:">样例:">样例:">样例:">样例:">输入样例:

242

输出样例:

@_@ 726

问题分析

每跑十分钟后要判断兔子是否在前,时间不够10分钟就跑完剩余时间,如果在前那么接下来三十分钟兔子不跑乌龟跑,时间不够30分钟,就跑完剩余时间。在while循环中循环条件为shijian<t,这样可以保证跑的时间是t分钟。

代码实现 

  1. #include<stdio.h>
  2. int main(){
  3. int t;
  4. scanf("%d",&t);
  5. int shijian=0,gui=0,tu=0;
  6. while(shijian<t){
  7. if(tu>gui){
  8. if(t-shijian>30){
  9. shijian+=30;
  10. gui+=30*3;
  11. }else{
  12. gui+=(t-shijian)*3;
  13. shijian+=t-shijian;
  14. }
  15. }else{
  16. if(t-shijian>10){
  17. tu+=9*10;
  18. gui+=3*10;
  19. shijian+=10;
  20. }else{
  21. tu+=9*(t-shijian);
  22. gui+=3*(t-shijian);
  23. shijian=t;
  24. }
  25. }
  26. }
  27. if(tu>gui){
  28. printf("^_^ %d",tu);
  29. }else if(gui>tu){
  30. printf("@_@ %d",gui);
  31. }else if(gui==tu){
  32. printf("-_- %d",gui);
  33. }
  34. return 0;
  35. }

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

闽ICP备14008679号