7-22
7-22 龜兔賽跑(20 分)
烏龜與兔子進行賽跑,跑場是一個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鍾可以前進3米,兔子每分鍾前進9米;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鍾回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鍾,否則繼續跑10分鍾;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問T分鍾后烏龜和兔子誰跑得快?
輸入格式:
輸入在一行中給出比賽時間T(分鍾)。
輸出格式:
在一行中輸出比賽的結果:烏龜贏輸出@_@
,兔子贏輸出^_^
,平局則輸出-_-
;后跟1空格,再輸出勝利者跑完的距離。
輸入樣例:
242
輸出樣例:
@_@ 726
AC代碼
#include<stdio.h>
int main(){
int T;
scanf("%d",&T);
int ogui,otu, gui=0,tu=0, i,j,lan=0;//o指out,最終輸出,gui 龜, tu兔,lan,懶
ogui=3*T;
for(i=1;i<=T;i++){
gui+=3;//中間標記龜的行程
if(lan!=1){//不偷懶狀態下,兔子行程
tu+=9;
}
if(i%10==0){//每到這時,兔子可能變成懶狀態,也可能不變懶。
if(lan==0 && tu>gui){//開始偷懶
lan=1;
j=i;//記錄偷懶的時刻
}
if(i==j+30)//如果這次是兔子偷懶並且休息了30分鍾之后,那就不能再偷懶了。
lan =0;
}
}
otu =tu;
if(otu>ogui)
printf("^_^ %d",otu);
else if(otu==ogui)
printf("-_- %d",ogui);
else printf("@_@ %d",ogui);
return 0;
}