AtCoder, ABC100: B. Ringo's Favorite Numbers
で割り切れるN番目に小さな数を求める.
かつ なので,あらかじめ数列を作ってしまってもよい.
数列をAとすると,問題文のサンプルにもあるように
- なら,]
- なら,]
- なら,]
となる.
こう見てみると,数列の 番目の要素は で良さそうに見える.
しかし, の中には で割り切れる数が含まれる.
(例として,かつのとき, なら だが,これは で回割り切れてしまう)
で割り切れてしまう場合は, が答えとなる.
まとめると,
となる.コードは↓の通り.
# include <cmath> # include <iostream> # define rep(i, n) for (int i = 0; i < (int)(n); i++) using namespace std; int main() { int d, n; cin >> d >> n; int base = pow(100, d); int ans = base * n; if ((ans / (int)pow(100, d)) % 100 == 0) { ans = base * (n+1); } cout << ans << endl; return 0; }