import java.util.Iterator; public class Jose { /** * Método para resolver el problema de jose y elegir una persona de entre * varias para hacer alguna tarea particular * @param listaPersonas -- Lista con los datos de las personas * @param nPersonas -- entero con la cantidad de personas en la lista * @param numero -- entero para saber cada cuántos se elimina una persona * de la lista */ public static void jose(Lista listaPersonas, int nPersonas, int numero) { Iterator itr = listaPersonas.iterador(); Object soldadoFuera = null; System.out.print("\n\nSe fueron descartando los soldados: "); while (nPersonas-- != 1) { for (int i = 0; i < numero; i++) { if (!itr.hasNext()) itr = listaPersonas.iterador(); soldadoFuera = itr.next(); } System.out.print(soldadoFuera+" "); listaPersonas.eliminar(soldadoFuera); } System.out.println(); } public static void main(String [] pps) { int p1 = 0; int p2 = 0; Jose pp = new Jose(); try { if(pps.length == 2) { p1 = Integer.parseInt(pps[0]); p2 = Integer.parseInt(pps[1]); Lista listaPersonas = new Lista(); System.out.println ("Se construira la lista"); for(int i = 1; i <= p1; i++) listaPersonas.agregar(new String("soldado"+i)); Iterator itr = listaPersonas.iterador(); while (itr.hasNext()) System.out.print(itr.next()+" "); System.out.println(); jose(listaPersonas, p1, p2); System.out.println(" y el ganador es " + listaPersonas.primerElemento()); } else { System.err.println("Uso: Jose NPersonas numero"); } } catch(NumberFormatException e) { System.err.println("Uso: Jose NPersonas numero");} } }