Programming
T04-1D-A01. Recorrido alterno de un array
Enunciado
Escribe un programa en Java que recorra un array de N números enteros mostrándolos por pantalla en el siguiente orden:
- El primero
- El último
- El segundo
- El penúltimo
- El tercero
- El antepenúltimo
- etc.
Ejemplo:
- Con array formado por los siguientes números: 1, 2, 3, 4, 5, 6, 7, 8, se imprimiría lo siguiente: 1, 8, 2, 7, 3, 6, 4, 5
- Con un array formado por los siguientes números: 1, 2, 3, 4, 5, 6, 7, se imprimiría lo siguiente 1, 7, 2, 6, 3, 5, 4
ENTRADA
La entrada comienza con un número indicando cuántos casos de prueba habrá que procesar.
Cada uno de los casos estará formado por una línea con el número N de elementos del array, donde N >= 0, y otra línea con los N elementos de dicho array separados por un espacio (si es que N > 0).
SALIDA
Por cada caso de prueba, el programa escribirá en una línea distinta, el resultado de hacer el recorrido alterno del array correspondiente.
Solución
import java.util.Scanner;
/**
*
* @author AulaVirtual
*/
public class RecorridoAlterno {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
int numCasos = 0;
int sizeArray = 0;
int[] arrayEnteros;
int start, end;
numCasos = sc.nextInt();
for (int i = 1; i <= numCasos; i++) {
sizeArray = sc.nextInt();
arrayEnteros = new int[sizeArray];
for (int j = 0; j < arrayEnteros.length; j++) {
arrayEnteros[j] = sc.nextInt();
}
start = 0;
end = arrayEnteros.length - 1;
while (start <= end) {
System.out.print(arrayEnteros[start] + " ");
start++;
if (end >= start) {
System.out.print(arrayEnteros[end] + " ");
end--;
}
}
System.out.println();
}
}
}
Input
7 6 1 2 3 4 5 6 5 1 2 3 4 5 10 10 20 30 40 50 60 70 80 90 100 1 30 15 3 5 7 10 11 34 21 44 99 102 300 400 587 456 900 0 8 1 2 3 4 5 6 7 8
7 6 1 2 3 4 5 6 5 1 2 3 4 5 10 10 20 30 40 50 60 70 80 90 100 1 30 15 3 5 7 10 11 34 21 44 99 102 300 400 587 456 900 0 8 1 2 3 4 5 6 7 8
Output
1 6 2 5 3 4 1 5 2 4 3 10 100 20 90 30 80 40 70 50 60 30 3 900 5 456 7 587 10 400 11 300 34 102 21 99 44 1 8 2 7 3 6 4 5
1 6 2 5 3 4 1 5 2 4 3 10 100 20 90 30 80 40 70 50 60 30 3 900 5 456 7 587 10 400 11 300 34 102 21 99 44 1 8 2 7 3 6 4 5

