Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - spf9

#1
Programación C/C++ / Ejercicio de monedas
3 Enero 2015, 12:02 PM
Hola,
tengo que hacer un ejercicio en C++ que lee una secuencia de números (monedas) todas iguales menos una. Me tiene que decir el indice de la moneda que pesa diferente precedido de + o - dependiendo de si pesa mas o menos que el resto.

Para la entrada:
7
9 9 9 9 10 9 9
Tengo que obtener la salida: +4

He hecho la siguiente función que compara dos segmentos de la secuencia y devuelve 0 si pesan lo mismo, 1 si el primero pesa más o -1 si pesa más el segundo:

int pesa(int v[], int ia, int ib, int n) {
   int t = 0;

   for (int i = 0; i < n; i++)
      t += (v[ib+i] - v[ia+1]);

   return t ? (t < 0? - 1:1) : 0;
}

Me falta hacer una función recursiva que, mediante llamadas a la funcion pesa(), se quede con el elemento que pesa diferente. Ahí es donde ando un poco perdido. Agradecería cualquier ayuda.