SCIP 1.12
Exercise 1.12. The following pattern of numbers is called Pascal's triangle.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
The numbers at the edge of the triangle are all 1, and each number inside the triangle is the sum of
the two numbers above it.35 Write a procedure that computes elements of Pascal's triangle by means
of a recursive process.
(defun pascal-ele(x y)
( cond((< x y) "input error")
((or (< x 0)
(< y 0))
"input error")
( (= x y) 1)
( (= y 0) 1)
( (+ (pascal-ele (- x 1)
(- y 1))
(pascal-ele (- x 1)
y)))))
CL-USER> (pascal-ele 0 0)
1
CL-USER> (pascal-ele 1 0)
1
CL-USER> (pascal-ele 1 1)
1
CL-USER> (pascal-ele 2 0)
1
CL-USER> (pascal-ele 2 1)
2
CL-USER> (pascal-ele 2 2)
1
CL-USER> (pascal-ele 4 0)
1
CL-USER> (pascal-ele 4 1)
4
CL-USER> (pascal-ele 4 2)
6
CL-USER> (pascal-ele 4 3)
4
CL-USER> (pascal-ele 4 4)
1
CL-USER> (pascal-ele 5 0)
1
CL-USER> (pascal-ele 5 1)
5
CL-USER> (pascal-ele 5 2)
10
CL-USER> (pascal-ele 5 3)
10
CL-USER> (pascal-ele 5 4)
5
CL-USER> (pascal-ele 5 5)
1
CL-USER> (pascal-ele 5 6)
"input error"
CL-USER> (pascal-ele 5 -3)
"input error"
Edit in Emacs with Slime and Steel Bank Common Lisp.