2015年10月11日日曜日

151011(3)

Ruby


Number of times 1 is used in writing out all the numbers 1 through n(2)

オンライン整数列大辞典の
A014778(http://oeis.org/A014778/list)
と比較し、答え合わせしてみる。

def A014778(n)
  i = 0
  cnt = 0
  ary = [0]
  num = 1
  while num < n
    i += 1
    cnt += i.to_s.count("1")
    if i == cnt
      ary << i
      num += 1
    end
  end
  ary
end
ary = A014778(28)

# OEIS A014778のデータ
ary0 =
[0,1,199981,199982,199983,199984,199985,199986,
 199987,199988,199989,199990,200000,200001,1599981,
 1599982,1599983,1599984,1599985,1599986,1599987,
 1599988,1599989,1599990,2600000,2600001,13199998,
 35000000]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。