解题思路:
注意事项:
参考代码:
/*一旦任一秒结束后兔子发现自己领先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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复