Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Solución recursiva
Solución iterativa
ant1 = ant2 = 1;
if ((n == 0) || (n == 1)) {
actual = 1;
} else
for (i=2; i<=n; i++) {
actual = ant1 + ant2;
ant2 = ant1;
ant1 = actual;
}
}
return actual;
}
Cálculo recursivo de fibonacci(5)
⎛ n ⎞ ⎛ n − 1⎞ ⎛ n − 1 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟
⎝ m ⎠ ⎝ m ⎠ ⎝ m − 1⎠
n
0 1 2 3 4 5 …
m 0 1 2 3 4 5
0 C0 C0 C0 C0 C0 C0
1 C 2C 3 C 4 C 5 C
1 1 1 1 1 1
2C 3 C 4 C 5 C
2 2 2 2 2
3 3 C 4 C 5 C 6C
3 3 3 3
4 4C 5C
4 4
5
…
Recursividad - Java - 10 - © Fernando Berzal
Implementación recursiva:
⎛n⎞
De hecho, se realizan ⎜⎜ ⎟⎟ llamadas recursivas.
⎝ ⎠
m
⎛n⎞ n!
- Aplicando directamente la expresión ⎜⎜ ⎟⎟ =
⎝ m ⎠ m!(n − m)!
Solución recursiva:
System.out.println(inic+“->”+fin);
Según la leyenda, los monjes de un templo tenían que mover una pila
de 64 discos sagrados de un sitio a otro. Sólo podían mover un disco al
día y, en el templo, sólo había otro sitio en el que podían dejarlos,
siempre ordenados de forma que los mayores quedasen en la base.
El día en que los monjes realizasen el último movimiento,
el final del mundo habría llegado… ¿en cuántos días?
Recursividad - Java - 13 - © Fernando Berzal