アッカーマン関数の宿題では、次のように問題を解決しました。
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を指定するとこれは機能しません。私は出てこない。プログラムは、警告、エラー、または結果なしで終了します。
誰かがこれが起こっている理由とこの問題をどのように解決できるか教えてください。