Euler : Problem 40

Posted by YpsilonTAKAI On 2011年6月5日日曜日 0 コメント
ここのところ忙しくてすすんでない。

1ケタが9こで 9ケタ分
2けたが90こで180ケタ分
3けたが900こで2700ケタ分
っていう具合になっていることを利用して求めようかと思ったけど、めんどくさくなって、普通に解いちゃった。

;;
;; Problem 40 : 2011/6/5
;; "Elapsed time: 6926.687051 msecs"
(use 'clojure.contrib.math)

(defn fractional-part-of-irrational []
(mapcat #(seq (str %)) (iterate inc 1)))

(loop [seq (map list (fractional-part-of-irrational) (iterate inc 1))
tgt (map #(expt 10 %) (range 7))
res 1]
(if (empty? tgt)
res
(let [[digit num] (first seq)]
(if (= num (first tgt))
(recur (rest seq) (rest tgt) (* (Character/digit digit 10) res))
(recur (rest seq) tgt res)))))

;;

0 コメント:

コメントを投稿