2016年5月6日金曜日

160506

Ruby


フィボナッチ数列でしりとり

フィボナッチ数列を最初から順に
1 → 13 → 34 → …
とつなげていく。
(ただし、0 が最後になればそこで終了。)
オンライン整数列大辞典の
https://oeis.org/A271750/b271750.txt
に答えが載っているが、自分で求めてみた。

cnt = 1
a, b = 1, 2
d = 1
puts '1 1'
while cnt < 100
  a, b = b, a + b
  str = a.to_s
  if d == str[0].to_i
    cnt += 1
    print cnt
    print ' '
    puts a
    d = str[-1].to_i
    break if d == 0
  end
end

出力結果
1 1
2 13
3 34
4 4181
5 10946
6 63245986
7 6557470319842
8 27777890035288
9 806515533049393
10 3416454622906707
11 7540113804746346429
12 927372692193078999176
13 6356306993006846248183
14 3311648143516982017180081
15 14028366653498915298923761
16 155576970220531065681649693
17 30960598847965113057878492344
18 42230279526998466217810220532898
19 8404037832974134882743767626780173
20 35600075545958458963222876581316753
21 394810887814999156320699623170776339
22 9663391306290450775010025392525829059713
23 3111581989804070186099320645726169127737705
24 5034645418285014325766435419644478339818233
25 34507973060837282187130139035400899082304280

0 件のコメント:

コメントを投稿

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