← All examples

Ackermann function

C++ Recursion

double recursion

Flowchart (ISO 5807)

YesNoYesNoStartInput m, nm == 0Return n + 1Endn == 0Return ackermann(m - 1, 1)EndReturn ackermann(m - 1, ackermann(m, n - 1))EndFigure 1 — ackermann

Source code

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));
}