某學院有m個學生參加春遊,休息時喝汽水。商家公告:
買一瓶汽水定價1.40元,喝一瓶汽水(瓶不帶走)1.00元。
為節約資源,規定3個空瓶可換回一瓶汽水,或20個空瓶可換回7瓶汽水。
為方便顧客,可先借後還。例如借一瓶汽水還3個空瓶,或借七瓶汽水還20個空瓶 問:
m個學生每人喝一瓶汽水(瓶不帶走),至少需要多少元?
輸入正整數m,輸出至少需要多少元(精確到小數點後第二位)
解題思路:
注意到春遊喝汽水無需帶走空瓶,根據商家的規定作以下比較:
1)如果人數為20人,買13瓶汽水,借7瓶汽水,飲完20瓶汽水後還20個空瓶(相當於換回7瓶汽水還給商家),兩清。此時每人花費為
13/20*1.40 = 0.91 元
2)如果人數為3人,買2瓶汽水,借 1 瓶汽水,飲完3瓶汽水後還3個空瓶(相當於換回1瓶汽水還給商家),兩清。此時每人花費為:
2/3*1.40 = 0.93 元
3)如果只有2人或1人,每人喝一瓶汽水(瓶不帶走),此時每人花費1元。
4)注意到0.91<0.93<1,因而有以下的最省錢演算法:
a. 把m人分為x=m/20個大組,每組20個人。每組買13瓶汽水(借7瓶汽水),飲完後還20個空瓶,兩清。
b. 剩下t = m - x20人,分為y = t/3個小組,每組3人。每組買兩瓶汽水(借一瓶汽水),飲完後還3個空瓶,兩清。
c. 剩下t = m - x20-y*3 人,每人花1元喝1瓶。
通過該演算法得所花費用最低為:
(13x+2y)*1.4+t 元
程式設計
#include int main()
以上最值求解沒有設定迴圈,通過簡單比較之後的分組思路是設計求解的關鍵。 銀行邏輯題
關於銀行考試中的重點 邏輯問題 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選...
智力邏輯題
1 有兩根不均勻分布的香,香燒完的時間是乙個小時,你能用什麼方法來確定一段15分鐘的時間?2 乙個經理有三個女兒,三個女兒的年齡加起來等於13,三個女兒的年齡乘起來等於經理自己的年齡,有乙個下屬已知道經理的年齡,但仍不能確定經理三個女兒的年齡,這時經理說僅僅有乙個女兒的頭髮是黑的,然後這個下屬就知道...
智力題 邏輯題
有5座連續相鄰的房子,並且每個房子有同的顏色 藍色,綠色,紅色,白色和黃色 每間房子的主人有不同的國籍 英國 印尼 德國 美國和荷蘭 每個人喝不同的飲料 葡萄汁 咖啡 牛奶 茶和水 每個人都有不同的工作 記者 郵遞員 魔術師 太空飛行員和精算師 每個人飼養不同的寵物 老虎 斑馬 鸚鵡 鯊魚和土豚 英...