C语言编写一个递归函数求值。

题目描述:编写一个递归函数Ack求Ack(m,n)的值。
在main函数中,输入两个正整数m (m≥0)和n (n≥0),调用递归函数Ack,输出
函数Ack(m,n)的值。
如图所示

img

代码如下,有帮助的话采纳一下哦!

#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;
} 

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632