Java - Limitador de caracteres

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Limitador de caracteres

Publicado por Javier (5 intervenciones) el 19/04/2020 07:34:05
Buen día, necesito ayuda en la creación de un programa con números enteros hasta que:
* el 2 se repita 2 veces
* se introduzca 8 veces repetidas el mismo valor
* la suma de todos los números ingresados sea superior a 100
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Limitador de caracteres

Publicado por Rodrigo (623 intervenciones) el 19/04/2020 15:00:59
SI cuando dices "8 veces repetidas" te refieres a consecutivas, el problema es mas simple que si no son consecutivas.

Si son consecutivas, basta que compares con el numero anterior.

Necesitas un contador para las veces que ha aparecido el numero 2, otro para los numeros que son iguales al anterior, una
variable que guarde la suma y tambien conviene guardar el numero anterior.

Haces un ciclo que se detenga cuando alguna de las condiciones se haya cumplido, dentro pides el numero, comparas con 2, con el anterior
y calculas la suma.

Algo asi (es solo la idea, le faltan todos los ; y nunca lo ejecute, tarea para ti: prueba si esta bien)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int anterior = -1 // suponiendo que solo son numeros positivos, esto es suficiente.
int numero;
int cuenta2 = 0
int consecutivos = 0
int suma = 0
 
while( suma <= 100 && cuenta2 < 2 && consecutivos < 8 ) {
    leer numero
    if( numero == 2 ) {
        cuenta2++
    }
    if( numero == anterior ) {
       // contar 1 mas
       consecutivos++
    } else {
       // comenzar a contar desde 1 otra vez
       consecutivos = 1
    }
    suma = suma + numero
    anterior = numero
}

Si no son consecutivos, se me ocurre una solucion con arreglos, pero no se si ya sabes usar estos.
Sospecho, por el problema, que estas practicando solo if y while
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
sin imagen de perfil
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Limitador de caracteres

Publicado por Javier (5 intervenciones) el 19/04/2020 15:34:35
Ya veo amigo, y si yo lo estoy haciendo con un switch como lo completaría la excepción de 8
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Limitador de caracteres

Publicado por Rodrigo (623 intervenciones) el 19/04/2020 15:36:20
No entendi la respuesta que diste, Puedes mostrar el codigo que hiciste?
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
sin imagen de perfil
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Limitador de caracteres

Publicado por Javier (5 intervenciones) el 19/04/2020 18:55:09
Esto es lo tenía me falta la última condición que es la de no repetir 8 veces el mismo valor, no se como hacerlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
System.out.print("Ingrese un numero: ");
            num = reader.nextInt();
            cont = cont + num;
 
            switch (num) {
                case 2:
                    a = a + 1;
                    cont = cont + num;
                    break;
                case 3:
                    b = b + 1;
                    cont = cont + num;
 
                    break;
            }
 
            if (a == 2) {
                System.out.println("Se introdujo 2 veces el valor 2");
                System.exit(0);
            } else if (b == 3) {
                System.out.println("Se introdujo 3 veces el valor 3");
                System.exit(0);
            }
        } while (cont <= 100);
        System.out.println("La suma total es: " + cont);
    }
 
}
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