在我的阿克曼函数的家庭工作中,我解决了以下问题
int main()
{
int y = ack(4,1);
cout<<"ans is :::: "<< y;
getch();
return 0;
}
int ack(int m, int n)
{
if(m == 0)
{
return n+1;
}
else if(m > 0 && n == 0)
{
return ack(m-1,1);
}
else if(m > 0 && n>0)
{
int x = ack(m,n-1);
return ack(m-1,x);
}
else
{
cout<< "did not worked properly";
}
}
这个函数在 m=3 和 n = 10 的低值下效果很好但是当我给 m = 4/above 或 n = 15/above 时,这不起作用。我没有输出。程序直接退出,没有任何警告、错误或结果。
请一些人告诉我发生这种情况的原因以及我该如何解决这个问题。