Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Cazs03 en 14 Diciembre 2012, 17:24 pm



Título: Ejercicio con while JAVA problema :S
Publicado por: Cazs03 en 14 Diciembre 2012, 17:24 pm
Bueno este es el enunciado:
Citar
una línea compuesta por secuencias de cuatro unos (1) y un cero (0) sucesivas de 25 de largo
1111011110111101111011110
Y me quedado atascado lo que tengo de momento es lo siguiente:
Código:
public class e4
{
public static void main(String[]args)
{
int cero=0;
int uno=0;
int i=0;
while(cero<25 && uno<25 && i<25)
{
i++;
while(uno<4)
{
uno++;
System.out.print("1");
}
while(cero<1)
{
cero++;
System.out.println("0");
}

}
}
}
Si lo ejecutais vereis que me da los primeros 11110 pero no logro repetir la secuencia dios y el lunes tengo un examen!!


Título: Re: Ejercicio con while JAVA problema :S
Publicado por: Shell Root en 14 Diciembre 2012, 18:02 pm
Eso es porque, la variable uno la usas en varios procesos, en donde afectan los valores, es decir,

En el inicio de variables uno vale 0.
Entra al ciclo y vale 1.
Entra al segundo ciclo en 1 y sale en 3 -porque la condución dice que se ejecute mientras sea menor a 4-
Cuando vuelve y entra el primer ciclo ya vale 3 y se incrementa a 4.
Cuando va a entrar de nuevo al segundo ciclo no puede porque la variable uno no cumple la condución -que sea menor a 4-, actualmente vale 4 exacto.

De igual forma pasa con la variable cero


Título: Re: Ejercicio con while JAVA problema :S
Publicado por: Cazs03 en 14 Diciembre 2012, 20:27 pm
Gracias por la respuesta pero la cuestion esque no logro hacerlo podrias hacerme el codigo de como seria para imprimir el resultado citado??


Título: Re: Ejercicio con while JAVA problema :S
Publicado por: Isótopo en 14 Diciembre 2012, 21:15 pm
-El primer while que compruebe i<25.
-El i lo incrementas en los dos while interiores para que cuente cada caracter.
-Cada vez que salgas de los while interiores tienes que resetear sus contadores, si no solo entrará una vez.


Título: Re: Ejercicio con while JAVA problema :S
Publicado por: Cazs03 en 15 Diciembre 2012, 10:19 am
Gracias tio, ahora lo vi claro y se me ilumino el coco, dejo el codigo por si alguien le hiciera falta como ami entenderlo gracias.

public class e4
{
   public static void main(String[]args)
   {
   int cero=0;
   int uno=0;
   int i=0;
      while(i<25)
      {
      
         while(uno<4)
         {
         uno++;
         i++;
         System.out.print("1");   
         }
         while(cero<1)
         {
         cero++;
         i++;
         System.out.print("0");
         }
      uno=0;
      cero=0;
      }   
   }
}