C語言 計程車費問題(貪心演算法)

2021-09-26 15:15:39 字數 1018 閱讀 2482

某市計程車計價規則如下:起步4公里10元,即使你的行程沒超過4公里;接下來的4公里,每公里2元;之後每公里2.4元。行程的最後一段即使不到1公里,也當作1公里計費。

乙個乘客可以根據行程公里數合理安排坐車方式來使自己的打車費最小。例如,整個行程為16公里,乘客應該將行程分成長度相同的兩部分,每部分花費18元,總共花費36元。如果坐計程車一次走完全程要花費37.2元。

現在給你整個行程的公里數,請你計算坐計程車的最小花費。

輸入包含多組測試資料。每組輸入乙個正整數n(n<10000000),表示整個行程的公里數。當n=0時,輸入結束。

對於每組輸入,輸出最小花費。如果需要的話,保留一位小數。39

1601020.4

36① 低於4公里,都是10元。

② 大於4小於等於8,自然是不必換車,是10+(n-4)×2元。

③ 大於8小於等於12時,不落車會便宜一點,是18+(n-8)×2.4元。

④ 大於12小於等於16時,走8公里換車便宜一點,是18+10+(n-4)×2元。

⑤ 大於16時,則重新進行③或④的選擇,即如果夠8公里,則加18元,直到減去很多個8公里後剩下的路程小於等於8公里。如果剩下的路程小於等於4,則選擇繼續坐,不換車,費用加上(n-8)×2.4元;如果大於4小於等於8,則換車,費用加上10+(n-4)×2元。

#include

intmain()

if(n<=8)

double sum=

0.0;

while

(n>=8)

if(n<=4)

else

if(n<=8)

if(sum-

(int

)sum==0)

printf

("%d\n",(

int)sum)

;//此處是為了符合輸出標準。

else

printf

("%.1lf\n"

,sum);}

return0;

}

貪心 計程車費

某市計程車計價規則如下 起步4公里10元,即使你的行程沒超過4公里 接下來的4公里,每公里2元 之後每公里2.4 元。行程的最後一段即使不到1公里,也當作1公里計費。乙個乘客可以根據行程公里數合理安排坐車方式來使自己的打車費最小。例如,整個行程為16公里,乘客應該將行程分成長度相同的兩部分,每部分花...

問題 B 計程車費(貪心)

題目描述 某市計程車計價規則如下 起步4公里10元,即使你的行程沒超過4公里 接下來的4公里,每公里2元 之後每公里2.4元。行程的最後一段即使不到1公里,也當作1公里計費。乙個乘客可以根據行程公里數合理安排坐車方式來使自己的打車費最小。例如,整個行程為16公里,乘客應該將行程分成長度相同的兩部分,...

Codeup貪心 計程車費

某市計程車計價規則如下 起步4公里10元,即使你的行程沒超過4公里 接下來的4公里,每公里2元 之後每公里2.4元。行程的最後一段即使不到1公里,也當作1公里計費。乙個乘客可以根據行程公里數合理安排坐車方式來使自己的打車費最小。例如,整個行程為16公里,乘客應該將行程分成長度相同的兩部分,每部分花費...