递归问题:编译没问题,一运行就堆栈溢出,求大神指导~~
#include<iostream>usingnamespacestd;intACK(inta,intb,intc){if(a=0)returnb+1;elseif(c=...
#include <iostream>
using namespace std;
int ACK(int a,int b,int c)
{
if(a=0) return b+1;
else if(c=0)
{
if(a=1) return b;
else if(a=2) return 0;
else if(a=3) return 1;
else if(a>=4) return 2;
}
else return ACK(a-1,ACK(a,b,c-1),b);
}
void main()
{
int a,b,c,y;
cout<<"请输入变量值:\n";
cout<<"a:";cin>>a;
cout<<"b:";cin>>b;
cout<<"c:";cin>>c;
y=ACK(a,b,c);
cout<<"ACK("<<a<<','<<b<<','<<c<<")="<<y<<'\n';
} 展开
using namespace std;
int ACK(int a,int b,int c)
{
if(a=0) return b+1;
else if(c=0)
{
if(a=1) return b;
else if(a=2) return 0;
else if(a=3) return 1;
else if(a>=4) return 2;
}
else return ACK(a-1,ACK(a,b,c-1),b);
}
void main()
{
int a,b,c,y;
cout<<"请输入变量值:\n";
cout<<"a:";cin>>a;
cout<<"b:";cin>>b;
cout<<"c:";cin>>c;
y=ACK(a,b,c);
cout<<"ACK("<<a<<','<<b<<','<<c<<")="<<y<<'\n';
} 展开
1个回答
展开全部
你试试
int k=0;
int ACK(int a,int b,int c)
{
cout<<++k<<" a:"<<a<<" b:"<<b<<" c:"<<c<<endl;
if(a=0) return b+1;
else if(c=0)
{
if(a=1) return b;
else if(a=2) return 0;
else if(a=3) return 1;
else if(a>=4) return 2;
}
else return ACK(a-1,ACK(a,b,c-1),b);
}
就知道问题了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询