← Усі приклади

Функція Аккермана

C++ Рекурсія

подвійна рекурсія

Блок-схема за ДСТУ

ТакНіТакНіПочатокВвід m, nm == 0Повернути n + 1Кінецьn == 0Повернути ackermann(m - 1, 1)КінецьПовернути ackermann(m - 1, ackermann(m, n - 1))КінецьРисунок 1 — ackermann

Вихідний код

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