problem 25
間を抜かしすぎですが、簡単なものから解いていこうと思っています。 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 で文字列の長さを得ることができる。