为什么?
大家看看这个程序:#include <iostream.h>
long int Ack(int m,int n);
void main(void)
{
int a,b;
cout<<"请输入阿克曼函数中的参数a:";
cin>>a;
cout<<"请输入阿克曼函数中的参数b:";
cin>>b;
cout<<"Ack("<<a<<","<<b<<")="<<Ack(a,b)<<endl;
}
long int Ack(int m,int n)
{long int ack;
if(m==0) ack=n+1;
if(1<=m&&n==0) ack=Ack(m-1,1);
if(m>=1&&n>=1) ack=Ack(m-1,Ack(m,n-1));
return ack;
}
为什么输入4,1后没有结果?
是不是数据过大的原因?
但是输入3 ,5就有结果如下:
******************************************
请输入阿克曼函数中的参数a:3
请输入阿克曼函数中的参数b:5
Ack(3,5)=253
Press any key to continue
******************************************