题目描述:编写一个递归函数Ack求Ack(m,n)的值。
在main函数中,输入两个正整数m (m≥0)和n (n≥0),调用递归函数Ack,输出
函数Ack(m,n)的值。
如图所示
代码如下,有帮助的话采纳一下哦!
#include <stdio.h>
int Ack(int m,int n);
int main(){
int value,x,y;
scanf("%d %d",&x,&y);
value = Ack(x, y);
printf("Ack(%d,%d)=%d",x,y,value);
}
int Ack(int m,int n){
int result = 0;
if (m==0)
result = n+1;
if ((n==0)&&(m>0))
result = Ack(m-1,1);
if ((m>0)&&(n>0))
result = Ack(m-1, Ack(m, n-1));
return result;
}
公式都描述很清楚了,按照公式递归就OK了
#include <stdio.h>
int Ack(int m,int n)
{
if(m==0)
return n+1;
if(n==0 && m>0)
return Ack(m-1,1);
return Ack(m-1,Ack(m,n-1));
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d",Ack(m,n));
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!