https://atcoder.jp/contests/past202107-open/tasks/past202107_b
解説
https://atcoder.jp/contests/past202107-open/submissions/24459788
シミュレーション問題。
計算一本でも求めることができるが、言われているシミュレーションを動かすことでも求めることができる。
「ボールの数が風船の数のC倍以下になる」が満たされるようになるまでボールを1つずつ減らしていき、
最終的なA÷Bが答えになる。
C++では注意点として整数としてABCを受け取った場合、単純にA/Bとすると答えは整数値となり、切り捨てのような動作となる。
よって、1.0を事前に書けるか、明示的なキャスト(double)を利用して計算結果がdoubleになるようにする必要がある。
小数の答え方も独特なので注意しよう。
小数点以下10位くらいで自分はいつも答えている。
int A, B, C; //--------------------------------------------------------------------------------------------------- void _main() { cin >> A >> B >> C; while (!(A <= B * C)) A--; double ans = 1.0 * A / B; printf("%.10f\n", ans); }