Título: Ejercicios Recursividad muy completos con solución MATLAB Publicado por: halconmilenario en 16 Diciembre 2019, 10:23 am Hola, os traigo un listado de ejercicios de recursividad con su solución. A nivel de recursividad es muy importante conocer su funcionamiento baso en fórmulas recursivas y casos bases. Estos ejercicios son ideales para exámenes de cualquier asignatura de programación.
EJERCICIO 1: MCD EUCLIDES RECURSIVO Dados 2 números enteros positivos m y n, tal que m>n, para encontrar su máximo común divisor (mayor entero positivo que divide a ambos): • Dividir m por n para obtener el resto r (0 <= r <n) • Si r=0, el MCD es m • Sino, el máximo común divisor es MCD(n,r) _________________________________________ SOLUCIÓN function r = MCD_Euclides_rec (a,b) if (b == 0) r = a; else r = MCD_Euclides_rec(b, rem(a,b)); end end EJERCICIO 2: POTENCIA RECURSIVA Programar un algortimo recursivo que calcule la potencia de un número elevado a un exponente determinado. Ejemplo: potencia_rec(2,3) devolverá como resultado 8 ____________________________________________ SOLUCIÓN function n = potencia_rec(b,e) if(e==0) n=1; elseif (e==1) n=b; %FÓRMULA RECURSIVA else n = b*potencia_rec(b,e-1); end end EJERCICIO 3: SUCESIÓN DE JACOBSTHAL Programar un algoritmo recursivo que permita calcular la sucesión de Jacobsthal (más info en Wikipedia) _______________________________________ SOLUCIÓN function m = jacobsthal(n) if n==0 m=0 elseif n==1 m=1 else m=jacobsthal(n-1)+2*jacobsthal(n-2); end end EJERCICIO 4: NÚMERO DE FRANÇOIS É. ANATOLE LUCAS Realizar la implementación de un algoritmo recursivo que permita obtener el número de François É. Anatole Lucas dada una posición concreta. De manera similar a los números de Fibonacci, cada número de Lucas se define como la suma de sus dos inmediatos anteriores, formando así una secuencia de enteros de Fibonacci. Los dos primeros números Lucas son L0 = 2 y L1 = 1 en contraposición a los dos primeros números de Fibonacci que son F0 = 0 y F1 = 1. Aunque estrechamente relacionado en la definición, los números de Lucas y de Fibonacci presentan propiedades distintas. La secuencia de números Lucas es: 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123 Por tanto, si el programa toma un 0, la salida será 2; si toma un 1, será 1; si toma un 2, será 3. _____________________ SOLUCIÓN Idem que fibonacci cambiando los casos base |