2011/02/16

0から1000までの0の数を数える

(use srfi-1)
(use srfi-13)

(string-count (string-concatenate (map x->string (iota 1001))) #\0)

上のは真面目に考えたもの。こっちっが最初に何も考えずに書いたもの。
(use srfi-1 :only (iota))

(let1 zeros (fold (^ (e acc)
                     (string-append
                      acc
                      (regexp-replace-all #/[1-9]/ (x->string e) "")))
                  "" (iota 1001))
  (string-length zeros))

こういう小ぶりの問題好きです。というか、むしろこういうのが一番楽しいかもしれない。大きな問題も分解すればこういう小さな問題の集合なのかもしれないけども。いや、でも「全体は部分の総和にあらず」とも言いますか。


検索したらいっぱいった。


パズルゲームアルゴリズムマニアックス

0 件のコメント:

コメントを投稿