2012-09-18 40 views
0

我的遞歸函數將給定區域乘以1.5直到達到100,000。輸出應該是它乘以1.5倍的次數。我想我理解我需要做的大部分工作,但我不知道應該在我的(如果)聲明中放置什麼。方案:簡單遞歸

(define area-multiplier 
    (lambda (area) 
    (if (< 100000 area) 
     0   ;what do I put here? 
     (+ 1 (area-multiplier (* area 1.5)))))) 

回答

1

用一個例子思考一下。在這種情況下,相關的例子是

(area-multiplier 100000) 

(area-multiplier 100001) 

什麼應該將這些生產?

+1

哦,我明白了。我希望他們能夠產生面積乘以1.5的次數。因此,0在該點是正確的,因爲它會將總數加0並停止遞歸。謝謝! – jblittle

0

你有什麼是好的,但如果你想爲100000〜返回0,然後改變<<=。 :-)

+0

我什至沒有抓住。謝謝!原來,我對遞歸如何工作有一個基本的誤解! – jblittle