ちょっと面倒な問題
問題概要
1 以上 12 以下の整数 が与えられる。これらが同じグループに属するかどうかを判定せよ。
解法
グループの番号を 0, 1, 2 などと名付けて、各整数をグループ番号に直す関数を用意するのが楽だと思う。
そして、 の属するグループ番号を求めて、それらが一致するかどうかを調べれば OK。
#include <bits/stdc++.h> using namespace std; // グループ番号を求める int group(int x) { if (x == 2) return 2; else if (x == 4 || x == 6 || x == 9 || x == 11) return 1; else return 0; } int main() { int x, y; cin >> x >> y; if (group(x) == group(y)) cout << "Yes" << endl; else cout << "No" << endl; }