function a(m, n:integer):integer
begin
if m = 0 then a := n + 1 ;
if n = 0 then
a := a(m-1, 1)
else
a := a(m-1, a(m, n-1));
end;
我无法弄清楚为什么这个功能不起作用。我做了一些测试,当它到达a(0-1, a(0,1-1))
时一切都崩溃了,但这意味着它来自a(0,1)
...这个a(0,1)
应该与第一个if m = 0 then a := n +1;
一起去但它取而代之的是else
案例。
答案 0 :(得分:0)
您假设第二个if
仅在第一个失败时执行,但代码中没有任何内容表明应该发生的事情。