Pregunta 2.c · Prácticas de programación UOC 2023
Tema: Transformación entre versión recursiva e iterativa en C · Del examen Prueba de síntesis de Prácticas de programación (Enero de 2023) (2023)
Enunciado
Pregunta 2. Análisis y desarrollo recursivo e iterativo de la función mystery
Pregunta 2 (50% de la nota). Análisis y desarrollo recursivo e iterativo de la función mystery
Considera el siguiente código implementado en C correspondiente a la función mystery:
int mystery(int x, int y) {
int res;
assert(x >= 0 && y >= 0);
if (y != 0) // (1)
res = x + mystery(x, y - 1); // (2)
else // (3)
res = 0; // (4)
return res; // (5)
}
c)
[20%] Escribe una implementación iterativa equivalente en lenguaje C, explicando brevemente el diseño y funcionamiento de tu propuesta.

Solución
Según los criterios oficiales de corrección
c) Escribe una implementación iterativa equivalente en lenguaje C
Solución: ```c int mystery(int x, int y) { int res = 0; assert(x >= 0 && y >= 0); while (y != 0) { res += x; y--; } return res; } ```
c) Explicación del diseño y funcionamiento de tu propuesta
Solución: Se inicializa una variable acumuladora en 0 y se ejecuta un bucle while que descuenta una unidad a y en cada ciclo, sumando x al acumulador hasta agotar el contador y cuando alcanza el valor 0.
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
‹ Pregunta 2.c - Transformación entre versión recur… · 2023 · Pregunta 2.c · 2021 ›