## 問題 商品名と支払い金額を入力すると、お釣りの「小銭の枚数」を返す関数またはメソッドを実装せよ。商品名と価格は以下の通り。 * お茶: 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)); ``` map<int,int> calculate(int kakaku,int money){ if(kakaku>money){ std::cout<<"金額が足りません"<<std::endl; map<int,int>ans; ans[500]=0; ans[100]=0; ans[50]=0; ans[10]=0; return ans; }else{ map<int,int>ans; int sum=money; sum-=kakaku; ans[500]=0; ans[100]=0; ans[50]=0; ans[10]=0; if(sum>=500){ ans[500]=1; sum%=500; } if(sum>=100){ ans[100]=sum/100; sum%=100; } if(sum>=50){ ans[50]=1; sum%=50; } if(sum>=10){ ans[10]=sum/10; sum%=10; } return ans; } } map<int,int> ans(int money,string item){ if(item=="お茶"){ return calculate(120,money); }else if(item=="コーラ"){ return calculate(150,money); }else if(item=="エナジードリンク"){ return calculate(280,money); }else{ std::cout<<"そのような商品はありません"<<std::endl; map<int,int>none; none[500]=0; none[100]=0; none[50]=0; none[10]=0; return none; } } hoge 大丈夫です