typestar

Recursión en C

Un caso base y un problema más chico, en la pila en vez de en un bucle.

int factorial(int n) {
    if (n <= 1) {
        return 1;
    }
    return n * factorial(n - 1);
}

int sum_digits(int n) {
    if (n < 10) {
        return n;
    }
    return n % 10 + sum_digits(n / 10);
}

int ackermann_lite(int m, int n) {
    if (m == 0) {
        return n + 1;
    }
    return ackermann_lite(m - 1, 1);
}

Cómo funciona

  1. El caso base es lo que detiene la recursión.
  2. Cada llamada recibe su propia copia de las locales.
  3. La recursión profunda cuesta pila, así que C suele preferir el bucle.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
269
Tokens
96
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 64 segundos.

Escribe este fragmento

Paso 6 de 7 en Funciones; paso 20 de 35 en Fundamentos del lenguaje.

← Anterior Siguiente →