본문 바로가기

LISP?

자연수의 합, 자연수의 제곱의 합을 구하는 lisp 식


1. 자연수의 합을 구하는 lisp 식

(defun sum-int (a b)
     (if (> a b)
        0
        (+ a (sum-int (+ a 1) b))))

;; a는 시작하는 자연수 b는 끝 자연수

2. 자연수의 제곱의 합을 구하는 lisp 식
(defun sum-sq (a b)
    (if (> a b)
       0
       (+ (* a a) (sum-sq (+ a 1) b))))

;; a는 시작하는 자연수 b는 끝 자연수


계산 예)

1) 1 + 2 + 3 + .....  + 10 = (sum-int 1 10) = 55
2) 3 + 4 + 5 + .....  + 10 = (sum-int 3 10) = 52
3) 5 + 6 + 7 + .....  + 20 = (sum-int 5 20) = 200
4) 1*1 + 2*2 + 3*3 + .... + 5*5 = (sum-sq 1 5)=55
5) 3*3 + 4*4 + 5*5 = (sum-sq 3 5)=50
6) 5*5 + 6*6 + 7*7 + .... + 20*20 = (sum-sq 5 20)=2840