先留個簡介:
函數定義:

從定義可以看出是一個遞歸函數。阿克曼函數不僅值增長的非常快,而且遞歸深度很高。
一般用來測試編譯其優化遞歸調用的能力。。
如果用一下代碼簡單實現的話,輸入參數4,2程序就直接奔潰了,(復雜度太大)
#include <stdio.h>
int ackerman (int m, int n) {
int i, tmp;
if (m == 0) return n+1;
if (n == 0 && m > 0) return ackerman (--m, 1);
if (n > 0 && m > 0 ) {
return ackerman (m-1,ackerman(m, n-1));
}
return 0;
}
int main() {
int m, n, acker;
scanf("%d %d", &m,&n);
acker = ackerman(m, n);
printf ("%d", acker);
}