解题思路:





注意事项:





参考代码:

/*一旦任一秒结束后兔子发现自己领先t米或以上,
它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。
对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果
输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2< =100;t< =300;s< =10;l< =10000且为v1,v2的公倍数)
输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。
输入:
 10  5  5  2  20
输出: 
 D
 4   */


#include<stdio.h>
int main()
{
 int l1=0,l2=0;  //l1:兔子走的距离 l2:乌龟走的距离
 int v1,v2,t,s,l;
 scanf("%d%d%d%d%d",&v1,&v2,&t,&s,&l);
 int i,j,n=0;
 for(i=1,j=1;l1<l&&l2<l;j++,i++)  // i:乌龟走的秒数;j:兔子走的秒数
 {
  l1=v1*j;
  l2=v2*i;
  if(l1-l2>=t&&n==0)
  {
   n=s;
  }
  if(n>0)
  {
   j--;
   n--;
  }
//  printf("%d %d %d\n",i,l1,l2);
 }
 
 if(l1==l2||l1>l&&l2>l) printf("D");
 else
 {
  if(l1>l2) printf("R");
  if(l1<l2) printf("T");
 }
 printf("\n%d",--i);
 return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论