Documente Academic
Documente Profesional
Documente Cultură
NDICE DE EJERCICIOS Ejercicio 1. Factorial iterativo ........................................................................................................ 1 Ejercicio 2. Nmero combinatorio ............................................................................................... 7 Ejercicio 3. ex por Taylor .................................................................................................................. 9 Ejercicio 4. seno(x) por Taylor .................................................................................................... 13 Ejercicio 5. Factorial recursivo ................................................................................................... 14 Ejercicio 6. Fibonacci ...................................................................................................................... 16 Ejercicio 7. La divina proporcin ............................................................................................... 19 Ejercicio 8. Conversin de entero a binario .......................................................................... 20 Ejercicio 9. Contador de apariciones ....................................................................................... 25 Ejercicio 10. Producto escalar .................................................................................................... 28 Ejercicio 11. Fibonacci en un vector ........................................................................................ 31 Ejercicio 12. Distancia al primero ............................................................................................. 33 Ejercicio 13. Nmeros primos .................................................................................................... 41 Ejercicio 14. Vector con los n primeros nmeros primos ............................................... 44 Ejercicio 15. Vector con los n primeros nmeros primos ordenados de mayor a menor 46 Ejercicio 16. Calcular el ensimo nmero primo ................................................................ 48 Ejercicio 17. Contar nmeros distintos en un vector ....................................................... 49 Ejercicio 18. Descomposicin en factores primos (I) ....................................................... 50 Ejercicio 19. Descomposicin en factores primos (II) ...................................................... 52 Ejercicio 20. Mximo comn divisor ........................................................................................ 54 Ejercicio 21. Tablero de ajedrez ................................................................................................. 56 Ejercicio 22. Alfil ............................................................................................................................... 57 Ejercicio 23. El caballo de ajedrez ............................................................................................. 61 Ejercicio 24. Matriz identidad ..................................................................................................... 68 Ejercicio 25. Diagonal principal ................................................................................................. 70 Ejercicio 26. Traza de una matriz .............................................................................................. 73 Ejercicio 27. Unos y ceros alternados ...................................................................................... 75
Ejercicio 28. Matriz de Vandermonde ..................................................................................... 81 Ejercicio 29. Matriz de Fibonacci ............................................................................................... 83 Ejercicio 30. Producto de matrices. .......................................................................................... 85 Ejercicio 31. Tringulo de Tartaglia ......................................................................................... 87 Ejercicio 32. Tringulo equiltero ............................................................................................. 90 Ejercicio 33. Matriz triangular superior ................................................................................. 95 Ejercicio 34. Diagonales que se incrementan (I) ................................................................ 99 Ejercicio 35. Diagonales que se incrementan (II) ............................................................. 102 Ejercicio 36. Nmeros ordenados ........................................................................................... 103 Ejercicio 37. Nmeros ordenados descendentemente .................................................. 105 Ejercicio 38. Zigzag ........................................................................................................................ 106 Ejercicio 39. Distancias ................................................................................................................ 107 Ejercicio 40. Distancia en letras ............................................................................................... 111 Ejercicio 41. Buscador de cadenas .......................................................................................... 113 Ejercicio 42. Deteccin de palndromos ............................................................................... 115 Ejercicio 43. El monte ................................................................................................................... 124 Ejercicio 44. Clculo de pi () ................................................................................................... 129 Ejercicio 45. La salida del laberinto ....................................................................................... 133 Ejercicio 46. Bsqueda binaria ................................................................................................. 137
Ejercicio 1. Factorial iterativo Realizar una funcin que, recibiendo como argumento de entrada un nmero entero n, devuelva el factorial de dicho nmero. Si no se recibiese ningn argumento de entrada se deber devolver un -1 y mostrar un mensaje de aviso por pantalla. Si n fuera menor que cero se deber devolver tambin un -1 y mostrar un mensaje de aviso por pantalla. Si n no fuera entero se deber redondear hacia + . El factorial de un nmero natural n es el producto de todos los nmeros naturales desde 1 hasta ese nmero n. El factorial de 5, por ejemplo, es 12345=120. Adems, el factorial de 0 es 1. La funcin factorial se representa con una admiracin: n!=n(n-1)321. Solucin 1.
En
una
primera
solucin
supondremos
que
el
nmero
que
se
pasa
como
argumento
a
la
funcin
es
natural
y
positivo.
Para
computar
el
resultado
necesitamos
nicamente
un
bucle
for
que
vaya
desde
1
hasta
n
de
1
en
1
(Funcin
1):
a
la
funcin
la
hemos
llamado
factorial1
y
toma
un
argumento1
n.
function result = factorial1( n ) result=1; for i=1:1:n result=result*i; end end
Funcin
1.
Un
factorial
sencillo,
sin
comprobacin
de
parmetros
y
con
un
for
que
incrementa
El bucle for i=1:1:n inicializa la variable contador i a 1 y la va incrementando de 1 en 1 hasta n (el valor del argumento pasado). En el cuerpo del bucle se utiliza una variable acumuladora result (puede llamarse de cualquier manera, pero utilizaremos habitualmente result para hacer referencia al resultado que debe devolver la funcin) en la que iremos guardando el resultado de calcular el valor anterior de result multiplicado por el valor de i. Con objeto de que result vaya almacenando correctamente los valores, es necesario inicializarla a 1 antes de empezar el bucle. La Tabla 1 muestra una traza de ejecucin de la funcin cuando pasamos 5 como valor del parmetro n: al entrar a la funcin, ni result ni i tienen valor, y lo nico que est definido es el parmetro n. En la asignacin result=1 que hay antes del bucle, result toma el valor 1 pero i sigue sin estar definida. Al entrar al bucle por primera vez, result sigue valiendo 1 e i toma ya valor 1.
En
la
segunda
vuelta
al
bucle,
i
se
ha
incrementado
en
1,
con
lo
que
vale
2,
y
a
result
le
asignamos
el
valor
que
tena
(1)
multiplicado
por
el
valor
de
i:
la
aparicin
de
la
palabra
result
en
el
lado
derecho
de
la
instruccin
result=result*i
hace
referencia
al
valor
actual
de
result;
la
aparicin
de
result
en
el
lado
izquierdo
hace
referencia
al
valor
que
le
vamos
a
asignar.
Se
contina
de
esta
manera,
haciendo
ese
cmputo,
hasta
que
i
alcance
el
valor
5,
que
es
el
valor
de
n
que
pasamos
como
parmetro
y
que
es
la
condicin
de
parada
en
el
bucle
for:
for
i=1:1:n
Comentarios
Al
entrar
a
la
funcin
Al
ejecutar
result=1
La
primera
vez
que
entramos
al
bucle
Segunda
vuelta
al
bucle
Tabla
1
n 5 5 5 5 5 5 5
i 1 2 3 4 5
Si
ejecutamos
la
funcin
desde
la
lnea
de
comando,
obtenemos
esto:
>>
factorial1(5)
ans
=
120
Figura
1
La palabra ans que escribe MATLAB es la answer (la respuesta) al clculo que le hemos solicitado. Muestra un 120 porque, en la cabecera de la funcin asignbamos a result el resultado de la funcin, y precisamente es result la variable en la que vamos, iteracin a iteracin, almacenando el resultado que deseamos. function result = factorial1( n ) Solucin 2.
Otra
forma
de
implementar
exactamente
lo
mismo
es
utilizar
tambin
un
bucle
for,
pero
que
vaya
desde
n
hasta
1,
de
-1
en
-1.
Observa
(Funcin
2)
que
el
bucle
for
ha
cambiado:
function result = factorial2( n ) result=1; for i=n:-1:1 result=result*i; end end
Funcin
2.
Un
factorial
sencillo,
sin
comprobacin
de
parmetros
y
con
un
for
que
decrementa
Solucin 3.
En
el
enunciado
del
problema
nos
piden
que,
si
no
pasamos
ningn
argumento,
se
muestre
un
mensaje
de
aviso
por
pantalla.
Ahora
mismo
se
muestra
el
mensaje
de
error
por
defecto
de
MATLAB,
que
es
bastante
feo:
>>
factorial2()
???
Input
argument
"n"
is
undefined.
Error
in
==>
factorial2
at
3
for
i=n:-1:1
Figura
2
Modificaremos
ligeramente
la
funcin
para
que
se
compruebe
que
se
pasan
argumentos
y
que,
en
caso
de
que
no
sea
as,
se
muestre
un
mensaje
de
error
personalizado,
la
funcin
devuelva
1
y
el
programa
termine:
en
la
Funcin
3
hemos
aadido
unas
lneas
de
cdigo
en
las
que
usamos
la
palabra
reservada
nargin
(que
indica
el
nmero
de
valores
pasados
a
la
funcin
como
parmetros)
para
comprobar
que,
si
es
0,
el
resultado
de
la
funcin
sea
-1
(nos
lo
pide
el
enunciado),
se
muestre
un
mensaje
de
error
(uso
de
la
funcin
disp
de
MATLAB)
y
el
programa
termine
(uso
de
return).
function result = factorial2( n ) if (nargin==0) result=-1; disp('Debes dar un argumento a la funcin'); return; end result=1; for i=n:-1:1 result=result*i; end end
Funcin
3.
El
factorial
con
comprobacin
del
nmero
de
parmetros
Ahora,
el
resultado
de
llamar
a
la
funcin
sin
argumentos
es:
>>
factorial2()
Debes
dar
un
argumento
a
la
funcin
ans
=
-1
Figura
3
Solucin 4.
El enunciado tambin nos dice que, si n es menor que cero, se d un mensaje de aviso y se devuelva tambin -1. Una forma de hacerlo es aadir otro if despus del if que ya aadimos a la Funcin 3, de manera que el cdigo quede como en la Funcin 4: 3
function result = factorial2( n ) if (nargin==0) result=-1; disp('Debes dar un argumento a la funcin'); return; end if (n<0) result=-1; disp('El parmetro debe ser positivo'); return; end result=1; for i=n:-1:1 result=result*i; end end
Funcin
4
Si
intentamos
calcular,
por
ejemplo,
el
factorial
de
-5,
se
muestra
la
siguiente
respuesta:
>>
factorial2(-5)
El
parmetro
debe
ser
positivo
ans
=
-1
Figura
4
Solucin 5.
Otra forma de conseguir lo mismo que en la solucin anterior es colocar las dos comprobaciones (existencia de un argumento y que ste sea positivo) en un solo if: en la Funcin 5 unimos ambas condiciones con un or (smbolo |, la barra vertical), de manera que si el nmero de argumentos es 0 o n es menor que cero, la funcin devuelva -1, se muestre un mensaje de error y se termine el clculo.
46
ejercicios
resueltos
de
MATLAB
function result = factorial2( n ) if (nargin==0 | n<0) result=-1; disp('Debes dar un argumento positivo a la funcin'); return; end result=1; for i=n:-1:1 result=result*i; end end
Funcin
5
Solucin 6.
Nos
piden
en
el
enunciado,
por
ltimo,
que
si
n
no
fuera
entero
se
redondee
hacia
+ :
es
decir,
si
queremos
calcular
el
factorial
de
7.85,
devolveremos
el
factorial
de
8.
Una
vez
comprobado
que
hay
un
argumento
positivo,
utilizaremos
la
funcin
ceil(x)
de
MATLAB:
si
x
tiene
decimales,
ceil(x)
redondea
el
valor
de
x
hacia
el
entero
superior
ms
prximo;
si
no
los
tiene,
deja
el
valor
de
x
como
est.
function result = factorial2( n ) if (nargin==0 | n<0) result=-1; disp('Debes dar un argumento positivo a la funcin'); return; end n=ceil(n); result=1; for i=n:-1:1 result=result*i; end end
Funcin
6
Ejercicio 2. Nmero combinatorio ! Escribir una funcin que calcule el nmero combinatorio , sabiendo que ! ! ! ! !! n>=m, = = ! y que = !! !!! !. Los valores de n y m sern ! ! ! argumentos de entrada y el resultado del clculo se devolver como argumento de salida. Solucin 1.
Escribiremos
primero
una
solucin
algo
larga,
pero
en
la
que
se
realiza
todo
el
clculo:
en
los
primeros
tres
if
(marcados
en
amarillo)
hacemos
una
comprobacin
de
los
argumentos.
En
el
siguiente
comprobamos
si
m
es
0
o
si
n==m,
con
lo
que
debemos
devolver
1
como
resultado.
En
los
siguientes
tres
bloques
calculamos
los
factoriales
de
n,
m
y
de
n-m
usando
tres
bucles
for
como
los
que
ya
utilizamos
en
la
primera
solucin
a
la
funcin
factorial
(pgina
1).
Estos
factoriales
los
guardamos
en
tres
variables
llamadas
factorialN,
factorialM
y
factorialNmenosM.
Finalmente,
asignamos
a
la
variable
de
resultado
(result)
el
clculo
solicitado.
function result = numeroCombinatorio1( n, m ) if (nargin~=2) disp('Se necesitan dos argumentos'); return; end if (n<0 | m<0) disp('Los argumentos deben ser positivos'); return; end if (n<m) disp('n debe ser mayor o igual que m'); return; end if (n==m | m==0) result=1; return; end factorialN=1; for i=1:1:n factorialN=factorialN*i; end factorialM=1; for i=1:1:m factorialM=factorialM*i; end factorialNmenosM=1; for i=1:1:(n-m) factorialNmenosM=factorialNmenosM*i;
Solucin 2.
En
una
solucin
menos
complicada
podemos
utilizar
cualquiera
de
las
funciones
factorial
que
escribimos
como
soluciones
del
ejercicio
1.
Basta
con
escribir
una
nueva
funcin
en
la
que
las
llamamos:
function result = numeroCombinatorio2( n, m ) result=factorial1(n)/(factorial1(m)*factorial1(n-m)) end
Funcin
8
Solucin 3.
En
las
dos
soluciones
anteriores
repetimos
clculos.
Supongamos
que
nos
piden
!" calcular
:
calculamos
primero
factorialN=10987654321
y
luego
! computamos
factorialM=54321,
con
lo
que
estamos
repitiendo
parte
del
clculo
del
factorialN.
Si
debiramos
hacer
este
clculo
a
mano,
probablemente
calcularamos
primero
el
factorial
de
m
y
luego,
al
calcular
el
de
n,
nos
detendramos
al
llegar
al
valor
de
m.
Es
decir,
que
factorialN=109876factorialM.
Esto
es
lo
que
hacemos
en
esta
solucin
(Funcin
9),
que
requiere
menos
tiempo
de
cmputo:
en
la
primera
lnea
se
calcula
el
factorial
de
m;
luego,
en
el
bucle
for
resaltado
en
amarillo,
vamos
guardando
en
factorialN
el
valor
de
multiplicar
i
desde
n
hasta
el
valor
de
m+1.
En
la
instruccin
siguiente,
multiplicamos
el
valor
de
factorialN
por
el
valor
de
factorialM
que
hemos
calculado
antes,
de
manera
que
nos
ahorramos
unas
cuantas
vueltas
de
bucle.
Finalmente
calculamos
(n-m)!
por
el
mtodo
tradicional
y
calculamos
el
resultado
final
del
nmero
combinatorio.
Se
han
omitido
las
comprobaciones
de
argumentos
para
facilitar
la
lectura
del
cdigo.
function result = numeroCombinatorio3( n, m ) factorialM=factorial1(m); factorialN=1; for i=n:-1:m+1 factorialN=factorialN*i; end factorialN=factorialN*factorialM; factorialNmenosM=factorial1(n-m); result=factorialN/(factorialM*factorialNmenosM); end
Funcin
9
Ejercicio
3. ex
por
Taylor
Realizar
una
funcin
que
recibiendo
como
argumento
de
entrada
un
nmero
real
x
devuelva
el
valor
de
la
exponencial
de
dicho
nmero,
que
deber
calcularse
mediante
su
serie
de
Taylor
truncada
en
n
de
tal
forma
que
el
error
absoluto
entre
la
serie
en
el
trmino
n-1
y
n
sea
menor
de
10-7.
La
serie
de
Taylor
de
la
exponencial
viene
dada
por
la
expresin:
!
! =
!!!
!! , ! !!
Solucin 1.
Antes
de
implementar
la
funcin
es
conveniente
plantear
un
ejemplo
para
ver
cmo
podemos
abordar
la
solucin.
Al
programar
funciones
de
clculo,
en
muchos
casos,
debemos
intentar
imitar
nuestro
propio
razonamiento.
Supongamos
que
deseamos
calcular
e5
(cuyo
valor
es
148,4131591025764)
mediante
la
aproximacin
de
Taylor:
!
! =
!!!
!! !! !! !! !! = + + + + !! !! !! !! !!
Pararemos
cuando
la
diferencia
entre
el
trmino
n-1
y
el
n
sea
menor
que
0.0000001.
Para
una
primera
solucin
no
tendremos
en
cuenta
esta
consideracin
del
error
absoluto,
y
lo
que
haremos
ser
iterar,
por
ejemplo,
100
veces.
Es
decir:
!""
! =
!!!
Una
forma
de
implementar
esta
solucin
es
la
siguiente:
function result = exponencialPorTaylor1( x ) result=0; for n=0:1:100 result=result+(x^n)/factorial(n); end end
Funcin
10
Solucin 2.
Podemos
escribir
una
solucin
parecida
a
la
anterior,
pero
utilizando
un
while
en
lugar
de
un
for.
Diremos
entonces
que
mientras
n
(que
es
la
variable
contador
del
bucle)
sea
menor
o
igual
a
100,
realice
el
clculo:
function result = exponencialPorTaylor2( x ) result=0; n=0; while (n<=100) result=result+(x^n)/factorial(n); n=n+1; end end
Funcin
11
Solucin 3.
Con
objeto
de
ir
acercndonos
a
lo
que
nos
pide
el
enunciado,
vamos
a
modificar
ligeramente
el
cdigo
anterior
para
que
la
funcin
nos
muestre
la
diferencia
entre
el
valor
calculado
para
n
y
para
n-1.
Ms
adelante,
en
otra
solucin,
utilizaremos
este
valor
(el
error
absoluto)
como
condicin
de
parada
para
devolver
el
resultado
solicitado.
En
la
Funcin
12
hemos
aadido
unas
lneas
al
cdigo
anterior:
ya
que
necesitamos
comparar,
en
cada
iteracin
del
bucle,
el
resultado
que
se
acabe
de
calcular
con
el
anterior,
creamos
antes
del
while
una
variable
ultimoResultado
a
la
que
asignamos
el
valor
infinito
(funcin
Inf()
de
MATLAB).
Luego,
en
cada
vuelta
del
bucle,
asignamos
a
una
variable
error
la
diferencia
entre
el
ltimo
resultado
calculado
(almacenado
en
la
variable
ultimoResultado
que
hemos
creado
ex
profeso
para
esto)
y
el
resultado
que
se
acaba
de
calcular.
Mostramos
el
error
por
la
consola
(disp(error))
y,
por
ltimo,
actualizamos
el
valor
de
ultimoResultado
al
valor
que
se
acaba
de
calcular.
function result = exponencialPorTaylor3( x ) result=0; n=0; ultimoResultado=Inf(); while (n<=24) result=result+(x^n)/factorial(n); error=ultimoResultado-result; ultimoResultado=result; disp(error); n=n+1; end end
Funcin
12
Inf
-5
-12.5
-20.8333333333333
-26.0416666666667
-26.0416666666667
-21.7013888888889
-15.5009920634921
-9.68812003968253
-5.38228891093473
-2.69114445546737
-1.2232474797579
-0.509686449899135
-0.196033249961204
-0.070011874986136
-0.0233372916620453
-0.00729290364438384
-0.00214497166010119
-0.000595825461147115
-0.000156796173996554
-3.91990434991385e-05
-9.33310559503298e-06
-2.12116034958854e-06
-4.61121828720934e-07
-9.60670547556219e-08
0
0
...
0
ans=
148.413159078837
Figura
7
La larga lista de nmeros que muestra (hemos omitido bastantes ceros al final) se corresponde con los valores de error calculados en cada iteracin del bucle while. Solucin 4.
Para cumplir con el enunciado, el cmputo debe detenerse en el momento en que el valor absoluto del error sea menor que 10-7. Como lo vamos calculando en cada vuelta del bucle, basta con que modifiquemos la condicin de parada del while para que, en lugar de dar 100 vueltas fijas, est dando vueltas mientras el valor absoluto de error sea mayor o igual a 10-7. Es decir, que modificamos el cdigo para que quede como sigue:
11
function result = exponencialPorTaylor4( x ) result=0; error=Inf(); ultimoResultado=Inf(); n=0; while (abs(error)>=10e-7) result=result+(x^n)/factorial(n); error=ultimoResultado-result; ultimoResultado=result; n=n+1; end end
Funcin
13
12
Ejercicio
4. seno(x)
por
Taylor
Escribir
una
funcin
que
recibiendo
como
argumento
de
entrada
un
nmero
real
x
devuelva
el
seno
de
dicho
nmero,
que
deber
calcularse
mediante
su
serie
de
Taylor
truncada
en
n
de
tal
forma
que
el
error
absoluto
entre
la
serie
en
el
trmino
n-1
y
n
sea
menor
de
10e-7.
La
serie
de
Taylor
del
seno
viene
dada
por
la
expresin:
!
!"#$ ! =
!!!
( ! )! !!"!! , ! !" + ! !
Solucin 1.
La
solucin
a
este
ejercicio
es
muy
parecida
a
la
del
anterior:
ya
que
no
sabemos
exactamente
cuntas
iteraciones
debemos
hacer,
sino
slo
la
condicin
de
parada,
lo
haremos,
como
antes,
con
un
bucle
while.
La
condicin
de
parada
ser
la
misma,
y
la
forma
de
clculo
tambin
muy
similar.
Cambiar
nicamente
la
frmula
de
asignacin
del
resultado.
function result = senoTaylor(x) result=0; error=Inf(); resultAnterior=Inf(); n=0; while (abs(error)>=10e-7) result=result+((-1)^n/factorial(2*n+1))*(x^(2*n+1)); error=abs(result-resultAnterior); n=n+1; resultAnterior=result; end end
Funcin
14
13
Ejercicio 5. Factorial recursivo Escribir una funcin que calcule el factorial de manera recursiva. Solucin 1.
Una
funcin
recursiva
es
una
funcin
que,
en
su
implementacin,
contiene
una
llamada
a
s
misma.
La
funcin
factorial
se
describe
recursivamente
de
forma
muy
natural,
ya
que:
n!=n(n-1)!
Es
decir,
el
factorial
de
n
es
n
multiplicado
por
el
factorial
de
n-1.
En
efecto,
5!=54321
o,
lo
que
es
lo
mismo,
5!=54!,
ya
que
4!=4321.
En
las
funciones
debe
haber
siempre,
al
menos,
un
caso
base,
que
haga
que
las
sucesivas
llamadas
a
la
funcin
se
detengan.
En
el
caso
del
factorial,
el
caso
base
se
alcanza
cuando
n=0,
ya
que
0!=1.
En
la
Funcin
15
preguntamos
que
si
el
argumento
que
se
est
pasando
es
0:
en
caso
afirmativo,
asignamos
a
result
el
valor
1
y
la
llamada
a
la
funcin
termina;
en
caso
negativo,
asignamos
a
result
el
resultado
de
multiplicar
n
por
el
factorial
de
n- 1,
tal
y
como
hacamos
arriba
al
escribir
n!=n(n-1)!
function result = factorialRecursivo( n ) if (n==0) result=1; return else result=n*factorialRecursivo(n-1); return end end
Funcin
15
Supongamos que deseamos calcular recursivamente el factorial de 5. La siguiente tabla muestra una traza de lo que va sucediendo al escribir en la lnea de comando de MATLAB factorialRecursivo(5): Comentarios 1 llamada a la funcin. Se ejecuta factorialRecursivo(5) Como n no es 0, se entra al else 2 llamada. Se ejecuta factorialRecursivo(4). n toma ahora el valor 4 Como n no es 0, se entra al else 3 llamada. Se ejecuta factorialRecursivo(3). n entra valiendo 3 n 5 5 4 4 3 result result=5*factorialRecursivo(4) result=4* factorialRecursivo(3)
14
Comentarios
n
result
Como
n
no
es
0,
se
entra
al
else
3
result=3*
factorialRecursivo(2)
4
llamada.
Se
ejecuta
2
factorialRecursivo(2).
El
valor
de
n
es
2
Como
n
no
es
0,
se
entra
al
else
2
result=2*factorialRecursivo(1)
5
llamada.
Se
ejecuta
1
factorialRecursivo(1).
n
llega
valiendo
1
Como
n
no
es
0,
se
entra
al
else
1
result=1*factorialRecursivo(0)
6
llamada.
Se
ejecuta
0
factorialRecursivo(0).
n
vale
0
n
es
ahora
0,
por
lo
que
es
cierta
0
result=1
la
condicin
del
if
(n==0)
En
este
punto
se
ha
alcanzado
el
caso
base,
por
lo
que
no
hay
ms
llamadas
recursivas.
Ahora,
el
valor
calculado
en
la
6
llamada
se
utiliza
para
calcular
el
valor
de
la
5
llamada,
que
a
su
vez
se
utiliza
para
calcular
el
de
la
4,
etctera.
Regreso
a
la
5
llamada.
1
result=1*factorialRecursivo(0)=1*1=1
Regreso
a
la
4
llamada.
2
result=2*factorialRecursivo(1)=1*2=1
Regreso
a
la
3
llamada.
3
result=3*factorialRecursivo(2)=3*2=6
Regreso
a
la
2
llamada.
4
result=4*factorialRecursivo(3)=4*6=24
Regreso
a
la
1
llamada.
5
result=5*factorialRecursivo(5)=5*24=120
Tabla
2
15