方案:Pascal的三角形

时间:2016-04-04 14:56:42

标签: scheme

我正在尝试编写一个包含行和列号(从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

知道这里可能会发生什么吗?

1 个答案:

答案 0 :(得分:2)

组合位置(行,列)的两个元素是(行-1,列-1)和(行-1,列+ 1)。 (尝试画一幅画。)