方案:帕斯卡三角
Scheme: Pascal's Triangle
我正在尝试编写一个程序,它接受行号和列号(均从 1 开始)并返回帕斯卡三角形在该行号和列号处的值。这是我的尝试:
(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
知道这里会发生什么吗?
组合位置(行,列)的两个元素是not(row-1,column-1)和(row-1,column+1)。 (试着画一幅画。)
我正在尝试编写一个程序,它接受行号和列号(均从 1 开始)并返回帕斯卡三角形在该行号和列号处的值。这是我的尝试:
(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
知道这里会发生什么吗?
组合位置(行,列)的两个元素是not(row-1,column-1)和(row-1,column+1)。 (试着画一幅画。)