問題文で書かれた通りに実装するだけなのだが、問題文の内容を理解するのが大変で、戸惑った人も多いかもしれない。
問題概要
正の整数 が与えられるので、次のようにして定まる
文字の文字列
を出力せよ。
に対して、1 以上 9 以下の
の約数
であって、
が
の倍数であるものが存在するとき、そのような最小の
に対応する数字を
とする
- そのような
が存在しないときは、
= '-' とする
コード
本当に言われた通りにやるだけ。各 に対して、
が条件を満たすかどうかを順に確かめていけばよい。
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; for (int i = 0; i <= N; ++i) { int res = -1; // 条件を満たす初めての j を取得する for (int j = 1; j <= 9; ++j) { if (N % j == 0 && i % (N / j) == 0) { res = j; break; } } if (res == -1) cout << "-"; else cout << res; } cout << endl; }