递归问题定义函数条件下完成给定条件

已知Ackermann函数定义如下

Ack={
n=1 当 m=0时
Ack(m-1,1) 当m≠0,n=0时
Ack(m-1,Ack(m,n-1)) 当m≠0,n≠0时
}
写出计算Ack(m,n)的递归算法,并根据此算法给出Ack(2,1)的计算过程

#include <stdio>

int ackermann(int m, int n)
{
    if (m==0)
        return 1;
    if (n==0)
        return ackermann(m-1, 1);
    else
        return ackermann(m-1, ackermann(m, n-1));
}

int main()
{
    int ret = ackermann(2, 1);
    printf("%d", ret);
    return 0;
}