pta基礎程式設計題目集7-22
龜兔賽跑這一問題可能有很多解答方法,例如結合數學影象之類的經典方法,除此之外,我還想到了一種方法。下面來看解析。
題目簡介:烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問t分鐘後烏龜和兔子誰跑得快?
輸入格式:
輸入在一行中給出比賽時間t(分鐘)。
輸出格式:
在一行中輸出比賽的結果:烏龜贏輸出@ _ @,兔子贏則輸出^ _ ^,平局則輸出- _ -;後跟1空格,再輸出勝利者跑完的距離。
案例
輸入樣例:
242輸出樣例:
@_@ 726
思路分析問題:烏龜速度 3 m/mim ;兔子速度:9 m/min
兔子每10分鐘看一次路程,
如果超過烏龜,則兔子休息30min,需要注意的是,兔子休息期間,沒有路程的增加,那麼我們對此狀態進行標記(mark),並記錄休息結束時的時間(rest_time);
如果沒超過烏龜,則繼續跑10min。
烏龜則是一直再跑。
**如下:(附帶注釋)
//龜兔賽跑
#include
#define tortoise_speed 3
#define rabbit_speed 9
typedef
struct
tortoise;
//烏龜
typedef
struct
rabbit;
void
init_tortoise
(tortoise* p)
;//初始化烏龜的資料
void
init_rabbit
(rabbit* p)
;//初始化兔子的資料
void
compare
(tortoise* p,rabbit* q)
;//比較獲勝
void
distance_tortoise
(tortoise* p,
int time)
;//計算烏龜的行程
void
distance_rabbit
(rabbit* p,
int time)
;//計算兔子的行程
intmain
(void
)else
}else
else
}++t;
//時間一分一分的流逝
if(rab_1.rest_time == t)
}compare
(&tor_1,
&rab_1)
;//比較
//printf("\n烏龜:%d 兔子:%d",tor_1.t_run,rab_1.r_run); //測試
}void
init_tortoise
(tortoise* p)
void
init_rabbit
(rabbit* p)
void
compare
(tortoise* p,rabbit* q)
else
if(p->t_run==q->r_run)
else
}void
distance_tortoise
(tortoise* p,
int time)
void
distance_rabbit
(rabbit* p,
int time)
執行結果如下:
c語言新龜兔賽跑 幽默 新龜兔賽跑
作者 何必加 自從輸給了烏龜後,兔子心裡很是生氣。這一天,他又遇見了烏龜,要求和他比賽,一定要一雪前恥。烏龜答應了,並且約定連比三場。第一場還是兔子輸了,原來他一著急,跑錯了方向,等他轉回身來到終點時,烏龜早已獲勝了,兔子自然心裡不服,但他堅信,接下來兩場必勝。第二場比賽,兔子認準了方向,跑啊跑,快...
龜兔賽跑C語言基礎
烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力,一直跑,不休息。假定烏龜與兔...
C語言練習4 龜兔賽跑
烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力,一直跑,不休息。假定烏龜與兔...