;; 1
;; 1 1
;; 1 2 1
;; 1 3 3 1
;; 1 4 6 4 1
;; 1 5 10 10 5 1
;; 1 6 15 20 15 6 1
;;
;; Det ligner at:
;; pascaltal(n,1) = 1
;; pascaltal(n,n) = 1
;; pascaltal(r,s) = (r-1,s-1) + (r-1,s)
(defun pascaltal (r s)
"Calculates the number for row r and column s"
(if (or (= s 1)
(= s r))
1
(+ (pascaltal (- r 1) (- s 1))
(pascaltal (- r 1) s))))
(defun pascaltri (h)
"Print a pascal-triangle of height h"
(dotimes (r h)
(setq rr (+ r 1))
(setq l '())
(dotimes (s rr)
(setq ss (+ s 1))
(push (pascaltal rr ss) l))
(print l)))
(pascaltri 8)
(1)
(1 1)
(1 2 1)
(1 3 3 1)
(1 4 6 4 1)
(1 5 10 10 5 1)
(1 6 15 20 15 6 1)
(1 7 21 35 35 21 7 1)
nil