Java - método recursivo para contar la cantidad de elementos pares que ocupan posiciones impares de un arra

 
Vista:

método recursivo para contar la cantidad de elementos pares que ocupan posiciones impares de un arra

Publicado por enrique (1 intervención) el 14/01/2013 08:38:13
método recursivo para contar la cantidad de elementos pares que ocupan posiciones impares de un array
hola   no me saleln elementos pares que ocupan posiciones impares
 si le pongo 6 elementos y escribo los seis 2... deberían salir 3 y salen 0 espero su ayuda, gracias

package tarea3;

import epsa.Cio;

public class Ejercicio1b {


//método recursivo para contar la cantidad de elementos pares que ocupan posiciones impares de un array v
private static int NParesPosicionImparRec(int []array){

int retorno = 0;
if (array.length %2 == 0){
retorno += (array[array.length -1] % 2 == 0?0:1);
}else {
retorno += NParesPosicionImparRec(java.util.Arrays.copyOf(array, array.length-1));
}
return retorno;
}
public static void main(String[] args) {

//pide al usuario que introduca la cantidad de elementos que tendrá el array.
Cio.println("Introducir número de elementos: ");
int numElem = Cio.readInt();
int[] array = new int[numElem];
for (int i=0;i<numElem; i++)
{
//pide y lee los términos uno a uno.
Cio.println("Introduzca el elemento " + (i) + " de " + numElem + ":");
array[i] = Cio.readInt();
}
//aplica el método e imprime el resultado.
Cio.println("Elementos pares con posición impar es: " + String.valueOf(NParesPosicionImparRec(array)));




}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

método recursivo para contar la cantidad de elementos pares que ocupan posiciones impares de un arra

Publicado por Carlos (4 intervenciones) el 29/01/2013 18:37:50
Tu problema esta aqui:

if (array.length %2 == 0){
retorno += (array[array.length -1] % 2 == 0?0:1);

Si pones 6 elementos y compruebas el tamaño de array mediante el modulo, 6 % 2 = 0 ya que es par, por lo que siempre estas entrando por esa condicion del if.

Despues compruebas el valor de array[array.length -1] % 2, que en tu ejemplo seria array[5] % 2, esto vale, si todas los datos que has metido son 2, 0, ya que 2 % 2 = 0, asi que te devuelve 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar