Ackermann函数定义如下: Ackermann(0,n)=n+1; Ackermann(m,0)=Ackermann(m-1,1); Ackermann(m,n)=Ackermann(m-1,Ackermann(m,n-1)) */ //下述程序实现用递归法求Ackermann(2,3),请填空 #include<stdio.h> void main() { int m,n; double Ackermann(int m,int n); y; m=2; n=3; y=Ackermann(m,n); printf("%.0lf ",y); } double Ackermann(int m,int n) { double y; printf("Ackermann(%d,%d) ",m,n); if() { y=n+1; } if(n==0&&m!=0) { y=Ackermann(,1); } if(m!=0&&n!=0) { y=Ackermann(m-1,(m,)); } return(y); }
时间: 2023-11-17 14:06:39 浏览: 107
Ackermann 函数 A(m, n) 的定义以及递归计算例子
正确的填空应该是:
```
#include <stdio.h>
double Ackermann(int m, int n);
int main() {
int m, n;
double y;
m = 2;
n = 3;
y = Ackermann(m, n);
printf("%.0lf ", y);
return 0;
}
double Ackermann(int m, int n) {
double y;
printf("Ackermann(%d,%d) ", m, n);
if (m == 0) {
y = n + 1;
} else if (n == 0 && m != 0) {
y = Ackermann(m - 1, 1);
} else if (m != 0 && n != 0) {
y = Ackermann(m - 1, Ackermann(m, n - 1));
}
return y;
}
```
在 `main` 函数中,调用 `Ackermann` 函数,并将结果输出。在 `Ackermann` 函数中,根据 Ackermann 函数的定义,采用递归的方式进行计算,并输出中间结果。最终返回 Ackermann(m,n) 的结果。
阅读全文