Common Lisp 연습: Self Number 학술

넥슨 입사 문제


; SLIME 2005-04-18
CL-USER> (defun numbers (x lst)
           (if (= x 0)
               lst
               (numbers (floor (/ x 10)) (cons (mod x 10) lst))))
NUMBERS
CL-USER> (defun generator? (x y)
           (= x (+ y (apply #'+ (numbers y nil)))))
GENERATOR?
CL-USER> (defun self-number? (n &optional (i 0))
           (if (< i n)
               (if (generator? n i)
                   nil
                   (self-number? n (+ i 1)))
               T))
SELF-NUMBER?
CL-USER> (let ((acc 0))
           (dotimes (i 5000)
             (if (self-number? i)
                 (incf acc i)))
           acc)
1227365


오래 안 쓰다보니 머리가 굳어서 요만큼 쓰는데 시간이 꽤 걸렸습니다. 으..
생각없이 대충 만들어서 좀 기다려야 답이 나오는군요;;
혹시 답이 틀린거면 대략 낭패 (...)

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://xeraph.com/tb/1719161 [도움말]

덧글

  • 현석 2006/03/31 17:32 # 삭제 답글

    아 어렵다-_-
    머리가 썩었어-.-
  • 현석 2006/03/31 17:53 # 삭제 답글

    특정 숫자에서 generator를 구하려면 어떻게 해야되지? 아흥-_-
댓글 입력 영역