Q. The Ackerman recursion can be described as below: A (0, n)
= n + 1
A (m + 1, 0) = A (m, 1)
A (m + 1, n + 1) = A (m, A (m + 1, n))
Given m and n as input, write a program to calculate A(m, n), using recursion.
Code:
#include<stdio.h>
int Ackerman(int m,int n);
int main()
{
int m,n;
printf("Enter two numbers: ");
scanf("%d%d",&m,&n);
printf("Ackerman(%d,%d) = %d.\n",m,n,Ackerman(m,n));
return 0;
}
int Ackerman(int m,int n)
{
if(m==0)
return n+1;
if(n==0 && m>0)
return Ackerman(m-1,1);
if(m>0 && n>0)
return Ackerman(m-1,Ackerman(m,n-1));
}
Thanks you for your constructive advices.