Ej4 2023

Ej4 2023

de Ivan Ruiz Tourn -
Número de respuestas: 3

Codigo:


Salida:


Buenas, qué tal? No termino de entender porque la función retorna siempre 0, creo entender que el algoritmo de Euclides se ejecuta de manera correcta, y por más que la variable result contenga el MCD entre a y b, retorna siempre 0.

Otro ejemplo:


En respuesta a Ivan Ruiz Tourn

Re: Ej4 2023

de Jessica Arroyo Muiño -
Hola buenas,
El problema es que al entrar al else comenzás a llamar a la función de forma recursiva y el valor de result que devuelve la anterior función no se guarda. Por lo tanto el result que retornás (del primer else) es el valor que se le dio a result por no estar inicializada (si hubieras puesto result=1 al principio te retornaría 1 siempre). Una forma de solucionarlo es colocar result=MCD(b,a%b); en el else para que se guarde el valor de result que retorna cuando entra al if.
Espero esto te pueda ayudar, cualquier cosa decime.
Saludos!