La Red de Conocimientos Pedagógicos - Currículum vitae - Problema del lenguaje C al cruzar el río

Problema del lenguaje C al cruzar el río

Sunlight12346 tiene la respuesta correcta, pero se puede optimizar.

Construya una función updateMin. La función de la función es calcular el número de piedras que la rana necesita pisar para saltar de X a l si el resultado es menor que el número mínimo calculado actualmente curMin. , se devolverá el resultado del cálculo; si es mayor o igual a curMin, luego devuelva y calcule recursivamente el valor mínimo final. Puedes recortarlo. Si durante el proceso recursivo, el número de piedras pisadas en stepStNum es mayor o igual a curMin, entonces puede volver a curMin y no es necesario continuar con el cálculo.

# incluir & ltstdio.h & gt

void main()

{

int x, s, t, l, curMin, stoneNum, I, temp

int piedra loc[100]= { 0 };

int stepStNum = 0

x = 0; p>

p>

printf("Ingrese la longitud del puente:");

scanf("%d ", & ampl);

printf( "Ingrese el rango de distancia:" );

scanf("%d%d ", & amps & t);

printf("Ingrese el número de piedras:"

scanf("%d ",&stone num);

for(I = 0;i<stoneNumi++)

{

scanf("%d ", &stone loc[I]);

}

curMin = l;

curMin = updateMin(x, stepStNum, s, t, l, piedraLoc, piedraNum, curMin);

printf ("%d ", curMin

}

int updateMin(int x, int); stepStNum, int s, int t, int l, int stoneLoc[], int stoneNum, int curMin)

{

int I = 0;

if (x & gt ;= l)

{

regresar stepStNum

}

for(I = 0;i<stoneNumi++)

{

if (stoneLoc[i] == x)

{

stepedstnum++;

Romper;

}

}

if(stepedStNum & gt; = curMin)

{

return curMin

}

for(I = t;i>= s;i-)

{

curMin = updateMin(x+i, stepStNum , s, t, l, piedraLoc, piedraNum, curMin

}

Devuelve curMin

}