問題
思考過程
パッと見てどう構築するか思いつかず、色々と手で書いて考えてみる。
後ろに継ぎ足して生やしていこうとすると、場合の数を数えるのが色々とややこしくなりそう。
簡単に数えられるのは、ひたすら "7" を続ける場合で、k個続けるなら 個の組ができることまではわかる。
kの値を変えてできる数列にでてくる数を組み合わせて、Nが作れないだろうか……?、7の連続する間を "1" とかでくっつければできたりしないだろうか…?
簡単に実験してみると、までなら6つの数字の組み合わせで実現することが可能っぽい。
この方針で提出してみるが、WA。
手元で愚直に通り数を計算するものを探して見ると、 だとと出力するが、が7の倍数なのでNGっぽい。
どうもこの方針だと筋が悪そう。 の値のいくつかの和で表すのはそれっぽそうなんだけど……。
この後色々考えていたが思いつかず。解説を見る。
「7の倍数になる区間は、ある桁数で区切った時の端からの7で割ったあまりの数が等しい」ということまではなんとなく考えていたが、「それの数を のkの値にしていく」、というところに思い至らず。
下から生やす(これまでの値を10倍する)やり方だとうまくいかないという点にややハマりしながらAC。(あまり綺麗なコードにならず)