Ackermann函数
作者:互联网
Ackermann函数定义如下:
若m=0,返回n+1。
若m>0且n=0,返回Ackermann(m-1,1)。
若m>0且n>0,返回Ackermann(m-1,Ackermann(m,n-1))
#include<iostream> #include<string> #include<cstring> using namespace std; int Ack(int m, int n) { if (m == 0) return n + 1; else if (m > 0 && n == 0) { return Ack(m - 1, 1); } else if (m > 0 && n > 0) return Ack(m - 1, Ack(m, n - 1)); } int main() { int m, n; while (cin >> m >> n && (m != 0 || n != 0)) { cout << Ack(m, n) << endl; } return 0; }
递归只能计算比较小的数,(3,10)就没法算了
非递归:
标签:Ackermann,return,函数,int,Ack,&&,include 来源: https://www.cnblogs.com/h694879357/p/11708584.html