這裏ocaml的堆棧溢出是我的代碼:方便計算
let rec sum n =
if n <= 0 then 0
else if n/2 * 2 = n then 3 * n + 50 * (sum n-2)
else n + 10 * (sum n-1);;
的數學題很簡單如下:
sn =
0 if n = 0
50*sn-2 + 3*n, if n > 0 and n is even
10*sn-1 + n , if n > 0 and n is odd
當我測試sum 5
,它彈出「堆棧溢出」錯誤的如下:
評估期間堆棧溢出(循環遞歸?)。
任何人都可以幫助我嗎?
總是仔細檢查你的遞歸:初始化,停止條件和遞歸。評估期間堆棧溢出意味着您的停止條件錯誤! – zmo