整数 が 326-like 数かどうかを判定する処理が書ければ、この問題は解ける。
問題概要
整数 が 326-like 数であるとは、3 桁の正の整数であって、百の位と十の位の積が一の位に等しいことをいう。
与えられた整数 以上の、最小の 326-like 数を求めよ。
制約
解法
整数 が 326-like 数かどうかを判定する方法を考えよう。まず各位の値を求める必要があるが、
- 百の位:
n / 100
- 十の位:
(n / 10) % 10
- 一の位:
n % 10
と求められる。これを用いて判定すればよい。
326-like 数の判定ができるならば、for
文を用いて に対して 326-like 数であるかどうかを判定し、最初に 326-like 数であるものを答えればよい。
#include <bits/stdc++.h> using namespace std; bool is326like(int n) { int x = n / 100; int y = (n / 10) % 10; int z = n % 10; if (x * y == z) return true; else return false; } int main() { int N; cin >> N; for (int x = N; x <= 999; ++x) { if (is326like(x)) { cout << x << endl; return 0; } } }