¿Alguien puede explicar cómo variable y devolver el índice de una matriz si mi matriz es 9 8 10 8 y quiero buscar 10 y en recursión y devolverá 1 y luego se agregará ans + 1 y devolverá 2?

enter code here

Int firstIndex (int input [], int size, int x) {

if(size==0)

{

Return -1;

}

if(input[0]==x)

{return 0;

}

int ans=firstIndex( input+1,  size-1,  x);

if(ans!=-1)

{
    return ans+1;
    
}

else

{
    return ans;
}

}

1
Rakesh kumar 1 ago. 2020 a las 07:15

1 respuesta

La mejor respuesta

Ok, entonces la función cuando recibe la primera llamada, el vector se ve así: [9 8 10 8]. Luego compara 9 con 10 (el elemento en búsqueda). Como no son iguales, la función realiza una llamada recursiva, pero con un nuevo vector, [8 10 8]. en ese momento tenemos en nuestra pila la primera llamada. Llamémoslo C1.

Luego compara 8 con 10 (el elemento en búsqueda). Como no son iguales, la función realiza una llamada recursiva, pero con un nuevo vector, [10 8]. en ese momento tenemos en nuestra pila la segunda y la primera llamada. Llamémoslo C2 C1.

Luego compara 10 con 10 (el elemento en búsqueda). Como son iguales, la función devuelve 0. Entonces, en nuestra pila, la función C2 recibe un 0 como resultado. Dado que es diferente a -1, devuelve 1 a la llamada C1. Dado que 1 no es igual a -1, devuelve 2 dejando el resultado correcto.

0
Fabio Zapata 1 ago. 2020 a las 04:33