Pregunta 2.b - Transformación a iterativo · Prácticas de programación UOC Juny 2020
Tema: Transformación entre versión recursiva e iterativa en C · Del examen Juny (2020)
Enunciado
Pregunta 2 [60%]. Análisis y transformación de algoritmo recursivo
A partir del siguiente algoritmo recursivo implementado en C:
#define MAX 64
int guess (int v[MAX], int x)
{
int res;
assert (0 <= x && x <= MAX);
if (x == 0) // (1)
res = 0; // (2)
else // (3)
{
res = guess(v, x-1); // (5)
if (v[x-1] == (x-1)) // (6)
res = res + 1; // (7)
}
return res;
}
b. [20%] Reescribe la función para convertirla en un método puramente iterativo en C.

Solución
Según los criterios oficiales de corrección
b. [20%] Reescribe la función para convertirla en un método puramente iterativo en C.
Solución: ```c #define MAX 64 int guess (int v[MAX], int x) { int res = 0; int i; assert(0 <= x && x <= MAX); for (i = 0; i < x; i++) { if (v[i] == i) { res++; } } return res; } ```
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.