题目
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
链接
https://pintia.cn/problem-sets/14/problems/802https://pintia.cn/problem-sets/14/problems/802
输入格式
输入在一行中给出比赛时间T(分钟)。
输出格式
在一行中输出比赛的结果:乌龟赢输出@_@
,兔子赢输出^_^
,平局则输出-_-
;后跟1空格,再输出胜利者跑完的距离。
输入样例
242
输出样例
@_@ 726
解题思路
首先我们输入一个数。
scanf("%d",&time);//奔跑时间
根据题目要求,我们可以每次减少一分钟,然后加上乌龟(a)兔子(b)的路程。
还需要有三个变量计数,一个计30分钟(k),一个计10分钟(i),一个计继续跑10分钟(j)。
再根据这三个变量的情况做出相应的判断。
//跑步
for(time;time>0;time--)
{
if(i==10)//十分钟到了。
{
if(b>a)//兔子是否超过乌龟。
{
for(time;time>0;time--)//
{ //
a+=3; //
k++; //
if(k==30) //兔子超过了乌龟,乌龟跑,兔子休息。
{ //
k=0; //
i=0; //
break; //
} //
}
}
else
{
for(time;time>0;time--)//
{ //
a+=3; //
b+=9; //
j++; //
if(j==10) //兔子没有超过乌龟,继续跑。
{ //
j=0; //
break; //
} //
} //
}
}
else
{
a+=3;//
b+=9;//十分钟没到,都跑。
i++; //
}
}
最后再打印输出。
//输出
if(a>b)
printf("@_@ %d",a);//a==乌龟所跑的距离
if(a<b)
printf("^_^ %d",b);//b==兔子所跑的距离
if(a==b)
printf("-_- %d",b);//平局
源代码
#include<stdio.h>
int main()
{
int time,time2,a=0,b=0,i=0,k=0,j=0;
scanf("%d",&time);
//跑步
for(time;time>0;time--)
{
if(i==10)
{
if(b>a)
{
for(time;time>0;time--)
{
a+=3;
k++;
if(k==30)
{
k=0;
i=0;
break;
}
}
}
else
{
for(time;time>0;time--)
{
a+=3;
b+=9;
j++;
if(j==10)
{
j=0;
break;
}
}
}
}
else
{
a+=3;
b+=9;
i++;
}
}
//输出
if(a>b)
printf("@_@ %d",a);//a==乌龟所跑的距离
if(a<b)
printf("^_^ %d",b);//b==兔子所跑的距离
if(a==b)
printf("-_- %d",b);//平局
return 0;
}
!!!您的点赞和支持,是我更新的最大动力!!!