烏龜與兔子進行賽跑,跑場是一個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3米,兔子每分鐘前進9米;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,于是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問T分鐘后烏龜和兔子誰跑得快?
輸入格式:
輸入在一行中給出比賽時間T(分鐘)。
輸出格式:
在一行中輸出比賽的結果:烏龜贏輸出@_@,兔子贏輸出^_^,平局則輸出-_-;后跟1空格,再輸出勝利者跑完的距離。
輸入樣例:
242
輸出樣例:
@_@ 726
代碼如下:
#include
main()
{
int t;
scanf("%d",&t);
int i=0,rabbit=0,turtle=0;
while(i
{
if(rabbit<=turtle)
{
rabbit+=(t-i)>=10?90:(t-i)*9;
turtle+=(t-i)>=10?30:(t-i)*3;
i+=(t-i)>=10?10:(t-i);
}
else
{
turtle+=(t-i)>=30?90:(t-i)*3;
i+=(t-i)>=30?30:(t-i);
}
}
if(rabbit>turtle)
printf("^_^ %d",rabbit);
else if(turtle>rabbit)
printf("@_@ %d",turtle);
else
printf("-_- %d",rabbit);
}
方法二:
#include "stdio.h"
main()
{
int t;
scanf("%d",&t);
int turtle=0,rabbit=0,r_time=10,rest=-1;
while(t--)
{
turtle+=3;
if(r_time-->0)
rabbit+=9;
if(r_time==0)
if(rabbit>turtle&&rest!=0)
rest=30;
else
r_time=10;
if(rest--==0)
r_time=10;
}
if(rabbit>turtle)
printf("^_^ %d",rabbit);
else if(turtle>rabbit)
printf("@_@ %d",turtle);
else
printf("-_- %d",rabbit);
}