我正在尝试编写一个包含行和列号(从1开始)的程序,并在该行和列号处返回Pascal三角形的值。这是我的尝试:
(define (pascal row column)
;;;if column is 1 or row == column, 1
(if (or (= column 1)(= row column))
1
;;;else (pascal row-1 column-1) + (pascal row-1 column+1)
(+ (pascal (- row 1) (- column 1)) (pascal (- row 1) (+ column 1)))))
当我尝试拨打
时(pascal 3 2)
我明白了:
Aborting!: maximum recursion depth exceeded
知道这里可能会发生什么吗?
答案 0 :(得分:2)
组合位置(行,列)的两个元素是不(行-1,列-1)和(行-1,列+ 1)。 (尝试画一幅画。)