華為2017校招題 自動售貨系統

2021-07-26 17:16:31 字數 1130 閱讀 6419

描述:考生需要模擬實現乙個簡單的自動售貨系統,實現投幣、購買商品、退幣、輸出庫存商品及存錢盒資訊的功能.

1. 系統中存在以下商品與錢幣:

三種商品:每種商品包含商品名稱、單價、數量三種屬性,分別為:名稱為a1的商品單價為2元數量為5件;名稱為a2的商品單價為3元數量為10件;名稱為a3的商品單價為4元數量為14件

存錢盒資訊存在以下三種面額1、2、5元的錢幣,每種錢幣包括面額、張數屬性,分別為:1元的 5張;2元的 5張, 5元的 3張;

2. 系統退幣原則:根據系統存錢盒內錢幣的資訊,按錢幣總張數最少的原則進行退幣,即使使用者只投幣不購買商品也按此原則退幣。

3. 約束:考生不需要考慮命令的非法性,即不存在非法的命令的情況,例如系統中a1商品只有5件,不存在買第6件的情況,不存在買的商品總價超過投幣總和的等情況。

4. 輸入說明

系統接收到輸入命令需要初始化系統,初始化系統中商品與錢幣數量。命令字與引數間使用乙個空格分隔,不同命令之間用逗號分隔。

1). 投幣命令:命令格式:p 錢幣面額,投幣可以投入多次,只能投入1、2、5元面額的錢幣。

2). 購買商品:命令格式:b 商品名稱

一條購買命令僅能購買一件商品,可以多次購買;購買商品成功後,自動售貨機中對應商品數量減1,存錢盒中金額相應的增加,全部購買完成需要按退幣原則把多餘的錢幣退回。

例如:p 5,p 5,p 5,b a3,b a3,b a2

5. 輸出說明

輸出自動售貨機中商品和存錢盒的資訊,包含商品名稱、數量,存錢盒面額、數量。根據商品名稱的從小到大順序進行排序,輸出結果中商品名稱與數量使用乙個空格分開,

存錢盒根據錢幣面額從小到大排序輸出,錢幣面額與數量使用乙個空格分開,不同資訊間使用逗號分開,商品資訊與存錢盒資訊使用分號分開。

例如,返回結果為:a1 5,a2 9,a3 12;1 5,2 3,5 6

執行時間限制:

無限制記憶體限制:

無限制輸入:

投幣命令、購買商品命令

輸出:自動售貨機中商品和存錢盒的資訊

樣例輸入:

p 5,p 5,p 5,b a3,b a3,b a2

樣例輸出:無

2023年校招題

牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要...

華為校招上機題

1.兔子爬洞問題 兔子白天爬出5公尺,晚上又掉下去2公尺。問給定洞的深度,兔子要爬多少天 include includeusing namespace std int str2int const char str int main int argc,char argv temp temp 10 st...

滴滴2017校招程式設計題 餐館

題目描述 某餐館有n張桌子,每張桌子有乙個引數 a 可容納的最大人數 有m批客人,每批客人有兩個引數 b人數,c預計消費金額。在不允許拼桌的情況下,請實現乙個演算法選擇其中一部分客人,使得總預計消費金額最大 輸入描述 輸入包括m 2行。第一行兩個整數n 1 n 50000 m 1 m 50000 第...