とんちゃんといっしょ

Cloudに関する技術とか日常とかについて書いたり書かなかったり

1 ,1, 2, 3, ●,8, 13, 21,34, 55, 89, 144・・・・・・

掲示板にて

1 :止まない雨は名無しさん:2008/08/21(木) 16:04:26 id:llpRpJ2B0
●に入る数字は何か? 

この数字を1000番目まで続けていくと3の倍数は何個あるか? 

20分以内  答え1時間後

Rubyで解いてみた。

fib = Hash.new{|h, k|h[k] = h[k-1] + h[k-2]}

cnt, fib[0], fib[1] = 0, 1, 1

1000.times{|i|
  cnt += 1 if fib[i] % 3 == 0
}

puts "● = #{fib[4]}", "3の倍数 = #{cnt}"

Hashを使って解いたので割と高速なはず。


ちなみに手計算で賢いのがいた

23 :止まない雨は名無しさん:2008/08/21(木) 16:28:42 ID:3qYoRHTs0
フィボナッチ数列を3で割った余りの数列 
1,1,2,0,2,2,1,0,1,1,2,0,2,2,1,0, … 
[1,1,2,0,2,2,1,0]のパターンが1000個までに125回繰り返される。 

2*125=250

この発想はなかった!