競技プログラミング用 知識集積所

ABC423A - Scary Fee

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識


考え方

まずは入力内容を確認。
入力内容は整数2つなので、int型変数2つを用意してcinで受け取る。

1000円を何回分引き出せるかを考える。
引き出し1000円ごとにc円の手数料がかかるということは、(1000+c)で割った回数分だけ1000円引き出せるということ。
つまり、以下の手順で答えが出る。

まず、残高を(1000+c)で割る。
これで、1000円を何回引き出せるかがわかる。
これに1000をかければ、実際に引き出した額である。

最後に忘れずにcoutしておしまい。

解答例


注意点

計算順に注意

割り算が商と余りを出す方式の場合、「a倍してからbで割る」「bで割ってからa倍」は結果が異なる。
きちんと、(1000+c)で割った後で1000倍すること。

別解

実際にシミュレーションする

この銀行、実は、例えば5000円引き出す場合に
  • 5000円引き出して5*c円手数料を払う
  • 1000円引き出してc円手数料を払う、を5回
で結果が変わらない。
そこで、1000円ずつ限界まで何度も引き出すシミュレーションをしてもよい。
残高の上限が1000万円、一度に最低でも1000円減るので、最高でも10000回で終わる。
解答例

タグ:

int型 cin cout
ウィキ募集バナー