けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 192 A - Star (灰色, 100 点)

一見「切り上げ処理」が必要だが、実は要らない!

問題概要

コインが  X 枚ある。

 X よりも大きい最小の  100 の倍数まで、あと何枚か?

解法

 X を 100 で割ったあまりを  r としよう。このとき、次の  100 の倍数までは

 100 - r

だけ必要である。たとえ、 X が 100 で割り切れる ( r = 0) としても、次の 100 の倍数まで 100 必要なので、矛盾していない。

よって、答えは 100 - X % 100 である。

なお、割り切れる場合の処理が異なる問題としては、次の問題がある。

drken1215.hatenablog.com

#include <bits/stdc++.h>
using namespace std;

int main() {
    int X;
    cin >> X;
    cout << 100 - (X % 100) << endl;
}