烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問t分鐘後烏龜和兔子誰跑得快?
輸入格式:
輸入在一行中給出比賽時間t(分鐘)。
輸出格式:
在一行中輸出比賽的結果:烏龜贏輸出@_@
,兔子贏輸出^_^
,平局則輸出-_-
;後跟1空格,再輸出勝利者跑完的距離。
輸入樣例:
242
輸出樣例:
@_@ 726
解題思路:
本題中的烏龜一直跑,比較容易計算,比較難的是兔子,那我們迴圈細化到每一分鐘。
本題主要乙個難點我認為其實就是兔子中途休息三十分鐘,這個「休息」應該如何實現,我起初嘗試了設定flag判斷兔子的狀態,這個方法,可行,但是相對複雜,因為還要獲取兔子開始休息的時間,然後計算結束休息的時間,到達結束時間時,再把兔子的狀態改為跑步。相對比較麻煩。
兔子休息30分鐘,換一種思路就是烏龜比兔子多跑了30分鐘,也就是兔子原地不動,給烏龜的距離加上90公尺,時間加上30分鐘,如此去實現兔子「休息」30分鐘。注意,此處還應加乙個判斷,判斷距離輸入的時間是否超過30分鐘,超過30分鐘直接加就行,如果不足30分鐘,則需要根據剩餘的時間做一下計算。
ac**:
n =
int(
input()
)#從控制台讀取時間
wg, tz =0,
0#定義烏龜wg和兔子tz的初始運動距離為0
i =1
while i <= n:
#注意,此處不能用for i in range()
wg +=
3#因為range是對區間的數字乙個乙個遍歷,無法起到修改時間的效果
tz +=
9if i %
10==
0and tz > wg:
#跑了10分鐘並且兔子超過了烏龜
if n - i >=30:
#距離比賽剩餘時間是否超過30分鐘
i +=
30 wg +=
90else
: wg +=
((n - i)*3
) i = n
i +=
1if wg > tz:
#判斷誰贏了
print
('@_@ {}'
.format
(wg)
)elif tz > wg:
print
('^_^ {}'
.format
(tz)
)else
:print
('-_- {}'
.format
(wg)
)
7 22 龜兔賽跑 (20 分)
烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力,一直跑,不休息。假定烏龜與兔...
7 22 龜兔賽跑 (20 分
烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力,一直跑,不休息。假定烏龜與兔...
7 22 龜兔賽跑 (20 分
7 22 龜兔賽跑 20 分 烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力...