問題 B 計程車費

2021-09-12 09:24:26 字數 1125 閱讀 1822

時間限制: 1 sec  記憶體限制: 32 mb

提交: 915  解決: 314

[提交][狀態][討論版][命題人:外部匯入]

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

乙個乘客可以根據行程公里數合理安排坐車方式來使自己的打車費最小。

例如,整個行程為16公里,乘客應該將行程分成長度相同的兩部分,每部分花費18元,總共花費36元。如果坐計程車一次走完全程要花費37.2元。

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

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

當n=0時,輸入結束。

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

3916

0

10

20.4

36

假設路程為l

04當l=8時,我們可以計算一下,如果重新坐一次車,前8公里平均下來每公里是18元/8公里=2.25元/公里

而我們不換乘,每公里是2.4元

因此當l>8時,就選擇換乘,只出前8公里的18元錢,因為均價最低

因為我們是不斷的將l-8,所有總有一次換乘,正好l<8

這時我們又有兩種選擇

一是接著坐2.4元/公里   一是換乘從2.5元/公里開始

我們從上面對應的每公里的**可以看出

l<=4時,我們換乘的話就要花2.5每公里,但是實際是沒有必要的,我們繼續坐只要2.4元每公里,所以選擇繼續坐

而4#include#includeusing namespace std;

int main()

if(distance>4&&distance<=8)

if(distance>8)

if(distance<=4)

else

} if(price-(int)price!=0) //如果是小數就輸出小數

printf("%.1lf\n",price);

else

printf("%d\n",(int)price);

} return 0;

}

問題 B 計程車費

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

問題 B 計程車費(貪心)

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

計程車費用

while true 快速多行縮排,可以選中需要縮排的行,按tab鍵 km input 請輸入您行駛的公里數 km 輸入0結束 2.將公里數轉換為float型別 km float km 3.根據不同的公里數計算需要的車費 如果km的值為0,結束迴圈 if km 0 print 歡迎下次使用!bye ...