で、我々は3桁の数字を選択していると仮定し、組み合わせは012である場合は、下限が99であります(0、1、2、3、4、5、6、7、8、9、11、12、13、配列番号22,23,24,25,26,27,28,29,33,34,35,36,37,38,39,44,45,46,47,48,49,55,56,57、 59、66、67、68、69、77、78、79、88、89、99、111、112 ...)
このシーケンスは、整数をインクリメントすることによって簡単に形成され、キャリーがある場合は、キャリングの代わりに数字を複製します。例:73の後には73 + 1 = 74(キャリーなし)が続きます。 79の後に79 + 1 = 80(桁上がり)、したがって88が続きます。 22356999は、ゼロ以外の下限を扱う従って22357777.
# Python code
A= 0 # CAUTION: this version only works for A == 0 !
B= 1000
N= A
while N < B:
# Detect zeroes at the end
S= str(N)
P= S.find('0')
if P > 0:
# Replicate the last nonzero digit
S= S[:P] + ((len(S) - P) * S[P-1])
N= eval(S)
# Next candidate
print N
N+= 1
、22356999 + 1 = 22357000が続くことは、より多くの注意が必要です。
下限についての情報はありますか? – Saphrosit
「222」を印刷する必要がありますか? –
コメントありがとうございました。下限は1〜10^20-1の範囲で設定できます。上限が1〜10^20になる可能性があります。 – Ali