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

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

AtCoder ABC 262 A - World Cup (7Q, 灰色, 100 点)

落ち着いて整理していこう!

問題概要

 Y 以上の最小の 4 で割って 2 余る整数を求めよ。

制約

  •  2000 \le Y \le 3000

考えたこと

 Y を 4 で割った余りによって場合分けして考えよう。

  •  Y が 4 で割り切れるとき:2 足すことで「4 で割って 2 余る整数」になるので、 Y + 2 が答え
  •  Y が 4 で割って 1 余るとき:1 足すことで「4 で割って 2 余る整数」になるので、 Y + 1 が答え
  •  Y が 4 で割って 2 余るとき: Y が答え
  •  Y が 4 で割って 3 余るとき:3 足すことで「4 で割って 2 余る整数」になるので、 Y + 3 が答え

コード

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

int main() {
    int Y;
    cin >> Y;
    
    if (Y % 4 == 0) cout << Y + 2 << endl;
    else if (Y % 4 == 1) cout << Y + 1 << endl;
    else if (Y % 4 == 2) cout << Y << endl;
    else cout << Y + 3 << endl;
}