結果

問題 No.534 フィボナッチフィボナッチ数
コンテスト
ユーザー ciel
提出日時 2017-06-25 20:40:38
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 54 ms / 2,000 ms
コード長 342 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 121 ms
コンパイル使用メモリ 8,832 KB
実行使用メモリ 14,848 KB
最終ジャッジ日時 2026-04-20 05:50:57
合計ジャッジ時間 4,180 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 42
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

def mul(a,b,m)
	r=a.size.times.map{[0]*b[0].size}
	a.size.times{|y|
		b[0].size.times{|x|
			r[y][x]=b.size.times.reduce(0){|s,i|(s+a[y][i]*b[i][x])%m}
		}
	}
	r
end
def fib(k,m)
	x=[[1,1],[1,0]]
	e=[[1,0],[0,1]]
	while k>0
		e=mul(e,x,m) if k%2>0
		x=mul(x,x,m)
		k/=2
	end
	e[0][1]
end
while gets
	p fib(fib($_.to_i,2*10**9+16),10**9+7)
end
0