小编use*_*674的帖子

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);;
Run Code Online (Sandbox Code Playgroud)

数学问题简单如下:

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
Run Code Online (Sandbox Code Playgroud)

当我测试时sum 5,它弹出"堆栈溢出"错误,如下所示:

评估期间堆栈溢出(循环递归?).

任何人都可以帮我吗?

syntax recursion ocaml

3
推荐指数
2
解决办法
178
查看次数

标签 统计

ocaml ×1

recursion ×1

syntax ×1