2016-04-04 16 views
1

私は行番号と列番号(どちらも1から始まる)を取り、その行と列番号でパスカルの三角形の値を返すプログラムを作成しようとしています。Scheme:Pascal's Triangle

Aborting!: maximum recursion depth exceeded 

任意のアイデアは、ここで何が起こっている可能性があります:

(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) 

を呼び出してみてください。ここに私の試みですか?

答えて

2

位置(行、列)に結合する2つの要素は、ではなく、(行-1、列1)および(行-1、列+1)です。 (画像を描こうとしてください)

+1

ああ、(行、列)=(行-1、列1)+(行-1、列)です! – bclayman

関連する問題