problem 25

Problem 25 - Project Euler

間を抜かしすぎですが、簡単なものから解いていこうと思っています。 project euler 問題 25 です。

問題 25 はフィボナッチ数列が初めて 1000 桁になるのは第何項かという問題です。

桁数を文字列の長さと考えて以下のようにしました。

(define (fib n)
  (define (fib-iter a b count)
    (if (= count 0)
      b
      (fib-iter (+ a b) a (- count 1))))
  (fib-iter 1 0 n))

(define (p25)
  (let loop ((i 1))
    (if (>= (string-length (number->string (fib i))) 1000)
      i
      (loop (+ i 1)))))

(print (p25))

わかったこと

  • string-length で文字列の長さを得ることができる。