为啥我这个代码输入多少都是输出197?(除了小于等于3的)
#include <bits/stdc++.h>
using namespace std;
int dp[1000][1000];
int ack(int m,int n)
{
if(dp[m][n]!=-1) return dp[m][n];
if(m==0)
{
dp[m][n]=n+1;
return n+1;
}
if(m>0 && n==0)
{
dp[m][n]=ack(m-1,1);
return dp[m][n];
}
if(m>0 && n>0)
{
dp[m][n]=ack(m-1,ack(m,n-1));
return dp[m][n];
}
}
int main()
{
int m;
cin>>m;
memset(dp,-1,sizeof dp);
cout<<ack(m,m);
}