問一道C語言題,已知Ackermann函數定義如下:A(m,n)=n+1 if m=0 A(
題目:
問一道C語言題,已知Ackermann()函數定義如下:A(m,n)=n+1 if m=0 A(
問一道C語言題,已知Ackermann()函數定義如下:
A(m,n)=n+1 if m=0
A(m,n)=ack(m-1,1) if m0 n=0
A(m,n)=(m-1,ack(m,n-1)) if m0 n0
用遞歸實現該函數,並編寫一個主函數調用它!
c語言初學者,這個函數貌似書上沒有,而且m0這個表示什麼意思不懂,麻煩大家幫個忙,最好能寫出程序,感激不盡!
解答:
#include <stdio.h>
int Ackermann(int m, int n)
{
if (m == 0) return n + 1;
if (n == 0) return Ackermann(m - 1, 1);
return Ackermann(m - 1, Ackermann(m, n - 1));
}
int main()
{
int m, n, a;
scanf("%d%d", &m, &n);
a = Ackermann(m, n);
printf("A(%d, %d) = %d\n", m, n, a);
return 0;
}
添加新評論