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):
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
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


0