«前の日記(2011.03.01 / Tuesday) 最新 次の日記(2011.03.09 / Wednesday)» 編集

Hena Hena Nikki

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|04|05|06|07|08|10|12|
2013|01|02|04|06|

2011.03.05 / Saturday [長年日記]

* [computer/euler] Project Euler / Problem 1

elisp なのに C っぽい書き方。

(defun euler1 (number)
  (let ((i 1) (sum 0))
    (while (< i number)
      (if (or (zerop (% i 3)) (zerop (% i 5)))
          (setq sum (+ sum i)))
      (setq i (1+ i)))
    sum))
(euler1 1000)
=>233168

* [computer/euler] Project Euler / Problem 2

やはり elisp なのに C っぽい書き方。

(defun euler2 (arg1 arg2 limit)
  (let (arg3 (sum 0))
    (while (< arg1 limit)
      (if (zerop (% arg1 2))
          (setq sum (+ sum arg1)))
      (setq arg3 (+ arg1 arg2))
      (setq arg1 arg2)
      (setq arg2 arg3))
    sum))
(euler2 1 2 (* 400 10000))
=>4613732

もうちょっとフィボナッチ数列の特性を考慮した方が良さそう。 具体的には、 arg1, arg2 のうち 1 つでも奇数があるか否かで、 項が何個おきに偶数になるか分かるとか。


  • この日記には本日 名の方が訪問してくださっているようです。 また、昨日は 名の方が訪問してくださったようです。
  • この日記の更新情報の取得には antenna.lirs を利用するのがおすすめです。