2015年7月27日月曜日

150727

Ruby


Reverse and Add(1)

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

def reverse_and_add(n)
  cnt = 0
  m = n.to_s.reverse.to_i
  while !(n == m)
    n += m
    cnt += 1
    m = n.to_s.reverse.to_i
  end
  cnt
end

def A033665(n)
  (0..n).map{|i| reverse_and_add(i)}
end
ary = A033665(103)

# OEIS A033665のデータ
ary0 =
[0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,2,1,1,0,1,
 1,1,1,1,2,1,1,1,1,0,1,1,1,2,1,2,1,1,1,1,0,1,2,1,2,
 2,1,1,1,1,1,0,1,2,2,3,1,1,1,1,2,1,0,2,3,4,1,1,1,2,
 1,2,2,0,4,6,1,1,2,1,2,2,3,4,0,24,1,2,1,2,2,3,4,6,
 24,0,1,0,1,1]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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