数値を文字列型で受け取るのが楽だと思われる。
問題概要
2 桁の整数 が与えられる。
がゾロ目であるかどうかを判定せよ。
解法 (1): を文字列型で受け取る
最も楽だと思われる方法は、 の値を文字列型で受け取ることだと思われる。たとえば、 のとき、文字列型の値 "57" として受け取ることとなる。
そうすれば、文字列型変数の名前を N
としたとき、
N[0] == N[1]
であるかどうかを判定すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { string N; cin >> N; if (N[0] == N[1]) cout << 1 << endl; else cout << 0 << endl; }
解法 (2):2 桁の整数 の一の位と十の位を求める
整数値を文字列型で受け取ることを思いつかなくても解ける。一般に 2 桁の整数 に対して、
- 一の位は、 を 10 で割った余り
- 十の位は、 を 10 で割った商
として求められる。これらが等しいかどうかを判定すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; if (N % 10 == N / 10) cout << 1 << endl; else cout << 0 << endl; }