¿Cuáles son algunos programas / algoritmos recursivos interesantes (como la Torre de Hanoi y N-Queens)?

Los siguientes son ejemplos clásicos de recursividad en la programación de computadoras: el código utilizado en los ejemplos a continuación es Java.

Primero el factorial:

int factorial (int n) {
si (n == 0) {
retorno 1;
}
más {
return (n * factorial (n-1));
}
}

Donde si n es 8, la llamada recursiva realizada en la línea 6 tomará la forma inicial de:

return (8 * factorial (8 – 1);

El resultado será 40, 320.

Un segundo ejemplo es encontrar el máximo común divisor (MCD) de dos enteros:

int gcd (int m, int n) {
if ((m% n) == 0) {
volver n;
}
más {
devuelve mcd (n, m% n);
}
}

Entonces gcd(60, 8) es igual a 4.

Un tercer ejemplo es Fibonacci, donde la suma de un número en la secuencia es la suma de los dos números anteriores, es decir, 0 1 1 2 3 5 8 13 21 etc. esto se puede escribir como:

int fib (int n) {
si (n <= 1) {
volver n;
}
más {
retorno (fib (n – 1) + fib (n – 2));
}
}

Entonces fib(10) dará 55 si mis cálculos son correctos.

Otros ejemplos son la Torre de Hanoi, que determina si un número es primo o no, y así sucesivamente. Algunos de estos puedes ver Algoritmos Recursivos.