邏輯題 喝 m 瓶汽水至少需要多少錢?

2021-09-25 12:03:39 字數 879 閱讀 4300

某學院有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座連續相鄰的房子,並且每個房子有同的顏色 藍色,綠色,紅色,白色和黃色 每間房子的主人有不同的國籍 英國 印尼 德國 美國和荷蘭 每個人喝不同的飲料 葡萄汁 咖啡 牛奶 茶和水 每個人都有不同的工作 記者 郵遞員 魔術師 太空飛行員和精算師 每個人飼養不同的寵物 老虎 斑馬 鸚鵡 鯊魚和土豚 英...