パリティの問題。ここのところ、算数や数学の問題が続いている。
問題概要
1 以上 3 以下の整数 が与えられる。
が奇数
となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。
解法
一般に、かけ算をするとき
- 偶数が 1 個でも含まれていたら:積は偶数
- すべて奇数だったら:積は奇数
ということが成り立つ (中学数学や数学 IA で学ぶ)。よって、
または
が偶数のとき:
がなんであっても積は偶数になるので、"No"
も
も奇数のとき:
を奇数にすれば積が奇数になるので、"Yes"
と整理できる。
#include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; if (A * B % 2 == 1) cout << "Yes" << endl; else cout << "No" << endl; }