問題
-
What is the first term in the Fibonacci sequence to contain 1000 digits?
-
1000桁になる最初の項の番号を答えよ.
解答
Gaucheのストリームライブラリを使ってみました。
(use util.stream)
(define fibonacci-sequence
(iterator->stream
(lambda (yield end)
(let loop ((a 1) (b 1))
(yield a)
(loop b (+ a b))))))
(define (digits n)
(define (digits-1 m acc)
(if (< n m) acc
(digits-1 (* m 10) (+ acc 1))))
(digits-1 1 0))
(define (solve)
(+ 1 (stream-index (lambda (n) (= 1000 (digits n)))
fibonacci-sequence)))
(define (main argv)
(display (solve))
(newline))
コメント
コメントを投稿