## 問題 商品名と支払い金額を入力すると、お釣りの「小銭の枚数」を返す関数またはメソッドを実装せよ。商品名と価格は以下の通り。 * お茶: 120円 * コーラ: 150円 * エナジードリンク: 280円 入力される通貨は日本円で、最大1000円までとする。 また、有効な貨幣は「1000円」「500円」「100円」「50円」「10円」とする。 たとえば、「1000円でお茶を購入」すると、返却すべき金額は880円だが、釣銭は「500円×1, 100円×3, 50円×1, 10円×3」となる。返り値は、任意の形式のクラス、連想配列、オブジェクト、構造体、リストなどで表現してよい。 PHPの擬似コードで書くと以下のようになる。 ```php function calcChange(string $item, int $paid_money): array { // ... } $expected = [500 => 1, 100 => 3, 50 => 1, 10 => 3]; assert($expected === calcChange("お茶", 1000)); ``` ```scala def calcChange(item: String, paidMoney: Int): Map[Int, Int] = { var otsuri = paidMoney - item match { case "お茶": 120 case "コーラ": 150 case "エナジードリンク": 280 } var x = mutable.Map.Empty[Int, Int] if (otsuri >= 0) { x(500) = otsuri / 500 otsuri -= x(500) * 500 x(100) = otsuri / 100 otsuri -= x(100) * 100 x(50) = otsuri / 50 otsuri -= x(50) * 50 x(10) = otsuri / 10 otsuri -= x(10) * 10 } x } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up