All pastes #584896 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-22 23:28 UTC
rendered paste body
(defvar *fibonacci-list*)
(defvar *solution*)

(defun next-fibonacci-number ()
  (let ((next-fibonacci (+ (elt *fibonacci-list* 0) (elt *fibonacci-list* 1))))
    (setf *fibonacci-list* (list (elt *fibonacci-list* 1) next-fibonacci))
    next-fibonacci))

(defun problem-2 (max-number)
  (setf *fibonacci-list* (list 0 1))
  (setf *solution* 0)
  (loop
   (let ((next-fibonacci (next-fibonacci-number)))
     (format t "Fibonacci: ~a~%" next-fibonacci)
     (when (= (mod next-fibonacci 2) 0)
       (if (> next-fibonacci max-number)
	   (return)
	   (setf *solution* (+ *solution* next-fibonacci))))))
  (format t "Solution: ~a~%" *solution*))