No.007 D
文字列の先頭が0以外であれば, 初項は先頭1文字からなる数値である. ただし, 2文字目が0であれば2文字目から連続した0も初項の文字列に加える. 第2項を残りの文字列からなる数値にすれば等差数列が成立するためである.
同様に, 文字列の先頭が0であれば連続する0を取り出し, 先頭に1をつけた文字列からなる数値が初項になる.
初項が決まったので, 第2項を全探索して等差数列が成り立つ第2項を探せばいい.
ただし, 初項を除いた残りの文字列からなる数値が初項より小さい場合は以下のようにしなければならない.
- 初項を除いた残りの文字列が初項の文字列より短く, 残りの文字列が初項の先頭からの部分文字列に一致する場合は, 第2項は初項+1になりえるので, 公差は1である.
- そうでない場合は残りの公差が1以上になるまで文字列の後ろに0を追加していく.