下面的这个递归,输入4 4 为什么会死机?而3 3 就行?
#include<iostream>
using namespace std;
int A(int m,int n);
int main()
{
int i,j;
cout<<"Input the numbres:"<<endl;
cin>>i>>j;
cout<<A(i,j)<<endl;
return 0;
}
int A(int m,int n)
{
if(m==0&&n>=0)return n+1;
else if(m>0&&n==0)return A(m-1,1);
else return A(m-1,A(m,n-1));
}
[解决办法]
#include<iostream>using namespace std;int A(int m,int n);int main(){ int i,j; cout<<"Input the numbres:"<<endl; cin>>i>>j; cout<<A(i,j)<<endl; return 0;}int A(int m,int n){ if(m==0&&n>=0) return n+1; else if(m>0&&n==0) return A(m-1,1); else return A(m-1,A(m,n-1));}
[解决办法]
Ackman函数,增长非常快的。所以4,4是算不出来的。
你可以google一下。
[解决办法]
你把递归改为迭代可以