Java - DUDA CODIGO MULTIPLOS!

 
Vista:

DUDA CODIGO MULTIPLOS!

Publicado por Santiago (2 intervenciones) el 24/09/2016 02:20:52
Buenas noches, me pidieron diseñar lo siguiente:

Supongamos que tenemos un conjunto cambiante de números enteros positivos. Es
cambiante porque pueden ingresar nuevos números (usaremos para esto el comando
“A”). Supongamos además que en un momento dado queremos saber cuál es la
sumatoria de todos los números de ese conjunto que son múltiplos de un valor M
(usaremos para esto el comando “M”)
Entrada
La entrada contiene una serie de “comandos” (no más de 50.000), de a uno por línea y
los cuales pueden ser de dos tipos (sin comillas y sin puntuación):
 “A”, un espacio en blanco, y un número entero positivo menor a 1.000.000.000
 “M”, un espacio en blanco, y un número entero positivo menor a 1.000.000.000
La entrada finaliza con una línea con el comando “E” (sin comillas)
Salida
Por cada comando “M”, la salida debe tener una línea con la sumatoria
correspondiente.

Y yo diseñe el siguiente codigo (JAVA):

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.*;
public class Main {
public static void main(String[] args) {
    Scanner entrada=new Scanner(System.in);    //entradas
    LinkedList<Integer> numeros=new LinkedList<Integer>();   //crear lista
 
 
    while(true){
        String comando=entrada.next();   //comando para saber si es A(meter a la lista) o M(Sumatoria).
        if(comando.equals("E")){
        break;}
        if(comando.equals("A")){              //si la entrada de comando es igual a A, entonces
       int entero=entrada.nextInt();            // Pidame el valor de un numero entero e 
        numeros.add(entero);                    //ingrseselo a la lista.
 
        }
 
        else if(comando.equals("M")){                     / /si comando es igual a M, entoncees
            int entero=entrada.nextInt();                     //pidame el valor de M( numero a mirar si hay multiplos)
            int auxiliar=0;                                             //Variable auxiliar para llevar conteo
 
            if(entero==0){           //si el numero es 0(multiplo de todo mundo), imprima la sumatoria de los valores
                for (int i = 0; i <numeros.size(); i++) {          //de todo el arreglo, por medio de este for
                    auxiliar=(auxiliar+(numeros.get(i)));
 
 
                }
                System.out.println(auxiliar);
            }
            else{
            for (int i = 0; i <numeros.size(); i++) {          //ciclo para comparar el numero ingresado con los
                if(numeros.get(i)%entero==0){              //elementos del arreglo. Si la division es exacta, es multiplo.
                    auxiliar=(auxiliar+(numeros.get(i)));        //auxiliar que lleve conteo.
                }
 
            }
            System.out.println(auxiliar);
        }}
}
}
 
}


La plataforma que califica el codigo (no es una persona) me dice que la respuesta esta mala (Esto pasa cuando no hay errores de sintaxis o de compilación, pero el codigo no llega a la respuesta que deberia. Le he hecho muchos casos de prueba desde el netbeans y me salen buenos, alguna idea del por qué la plataforma dice que esta mal? Gracias
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
sin imagen de perfil

DUDA CODIGO MULTIPLOS!

Publicado por drozz (12 intervenciones) el 25/09/2016 07:02:35
por las entradas.... probe tu codigo, y si funciona... pero lo que tengo que hacer para agregar a la lista por ejemplo, es meter la letra A dar enter y despues el valor y despues volver a dar enter... y para M igual, primero M luego enter luego el valor... y en el problema dice claramente que tiene que ser "letra - espacio - el valor - y enter" para agregar: es decir el comando debe ser "A 2 (enter)" y se debe agregar el 2, "M 1 (enter)" y desplegar la suma correspondiente... si me doy a explicar?
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

DUDA CODIGO MULTIPLOS!

Publicado por Santiago (2 intervenciones) el 25/09/2016 07:07:11
Correcto, ya resolvi el problema. El codigo estaba bien, el percance estaba en que la lista y la auxiliar eran de tipo INT, y si metiamos valores muy grandes (el ejercicío lo permitia) se iban a volver Longs. Todo se soluciono, volviendo la variable a tipo Long y ya, la platforma lo recibe perfectamente. Gracias.
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