elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con problema [Resuelto]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con problema [Resuelto]  (Leído 1,943 veces)
Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Ayuda con problema [Resuelto]
« en: 12 Noviembre 2011, 18:32 pm »

Hola buenas, estoy dando la cabeza con un problema de una pagina web en Java y no lo consigo, tengo todo menos la parte de calcular. Aqui os pongo el problema (No todo el enunciado porque hay una parte que no sirve).

Citar
Tanto el nombre del grupo y el nombre del cometa son convertidos en un número de la siguiente manera: el número final es simplemente el producto de todas las letras en el nombre, donde "A" es 1 y "Z" es 26. Por ejemplo, el grupo "USACO" sería 21 * 19 * 1 * 3 * 15 = 17955. Si el número del grupo módulo 47 es el mismo que el número del cometa módulo 47, entonces tú necesitas decirle al grupo ¡Alístense¡ (Recuerda que "a mod b" es el residuo después de dividir a por b; 34 mod 10 es 4.)

Escribe un programa el cual lea el nombre de un cometa y el nombre de un grupo y encuentre si de acuerdo al método antes descrito el grupo debe ir en el OVNI detrás de ese cometa y en ese caso imprima "GO", y si no "STAY". Los nombres de los grupos y de los cometas serán cadenas de letras mayúsculas sin espacios ni caracteres de puntuación, hasta de 6 caracteres de longitud.

Ejemplos:

Entrada    Salida
COMETQ
HVNGAT      GO
------------------------
ABSTAR
USACO      STAY


Y este es el código que tengo hecho

Código
  1. public class ride {
  2. private int valorGrupo;
  3. private int valorNave;
  4. private int mod;
  5. private String grupo;
  6. private String nave;
  7. private BufferedReader in;
  8. private PrintWriter out;
  9. private StringTokenizer st;
  10.  
  11. public ride() throws Exception{
  12. try
  13. {
  14. in = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(this.getClass().getSimpleName()+".in")));
  15. out = new PrintWriter(new FileWriter(this.getClass().getSimpleName()+".out"));
  16.  
  17. String datos = in.readLine().trim();
  18. st = new StringTokenizer(datos);
  19. nave = st.nextToken();
  20.  
  21. while((datos = in.readLine()) != null){
  22. st = new StringTokenizer(datos);
  23. grupo = st.nextToken();
  24.  
  25. }
  26.  
  27. if(grupo.length() > 6 || grupo.length() == 0 || nave.length() > 6 || nave.length() == 0)
  28. System.exit(0);
  29.  
  30.  
  31. valorGrupo = 1;
  32. valorNave = 1;
  33.  
  34. for(int i = 0; i < grupo.length(); i++){
  35. valorGrupo *= Character.getNumericValue(grupo.charAt(i));
  36. }
  37.  
  38. for(int i = 0; i < nave.length(); i++){
  39. valorNave *= Character.getNumericValue(nave.charAt(i));
  40. }
  41.  
  42. mod = 47;
  43.  
  44.  
  45. }catch (Exception e) {
  46. throw new Exception(e);
  47. }finally
  48. {
  49. if(in != null)
  50. in.close();
  51. if(out != null)
  52. out.close();
  53. }
  54. }
  55.  
  56.  
  57. public static void main(String[] args) {
  58. try
  59. {
  60. new ride();
  61. System.exit(0);
  62. }catch(Exception e){
  63. e.printStackTrace();
  64. System.exit(-1);
  65. }
  66. }
  67. }
  68.  

Las clases in y out seria para los archivos en donde se encuentra los datos (in) y out (la escritura de si es GO o Stay). Llevo tiempo dando el coco pero no consigo sacar la maldita operacion, o es que lo comprendo mal o no lo se.


« Última modificación: 13 Noviembre 2011, 17:18 pm por Afsoon » En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Ayuda con problema
« Respuesta #1 en: 13 Noviembre 2011, 17:13 pm »

Te dejo mi solución que pasa los juegos de prueba en USACO:
Código
  1. import java.io.PrintWriter;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.util.StringTokenizer;
  7.  
  8. public class ride implements Runnable {
  9.    PrintWriter writer;
  10.    BufferedReader reader;
  11.    StringTokenizer tokenizer;
  12.  
  13.    private void solve() throws IOException {
  14.        String s = nextToken(), r = nextToken();
  15.        int a = 1, b = 1;
  16.        for (int i = 0; i < s.length(); ++i) a = (a*(Character.getNumericValue(s.charAt(i)) - 9))%47;
  17.        for (int i = 0; i < r.length(); ++i) b = (b*(Character.getNumericValue(r.charAt(i)) - 9))%47;
  18.  
  19.        if (a == b) writer.println("GO");
  20.        else writer.println("STAY");
  21.    }
  22.  
  23.    public static void main(String[] args) {
  24.        new ride().run();
  25.    }
  26.  
  27.    public void run() {
  28.        try {
  29.            reader = new BufferedReader(new FileReader("ride.in"));
  30.            writer = new PrintWriter(new FileWriter("ride.out"));
  31.            tokenizer = null;
  32.            solve();
  33.            reader.close();
  34.            writer.close();
  35.        }
  36.        catch (IOException e) {
  37.        }
  38.    }
  39.  
  40.    String nextToken() throws IOException {
  41.        if (tokenizer == null || !tokenizer.hasMoreTokens())
  42.            tokenizer = new StringTokenizer(reader.readLine());
  43.        return tokenizer.nextToken();
  44.    }
  45. }


En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Ayuda con problema
« Respuesta #2 en: 13 Noviembre 2011, 17:15 pm »

Te dejo mi solución que pasa los juegos de prueba en USACO:
Código
  1. import java.io.PrintWriter;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.util.StringTokenizer;
  7.  
  8. public class ride implements Runnable {
  9.    PrintWriter writer;
  10.    BufferedReader reader;
  11.    StringTokenizer tokenizer;
  12.  
  13.    private void solve() throws IOException {
  14.        String s = nextToken(), r = nextToken();
  15.        int a = 1, b = 1;
  16.        for (int i = 0; i < s.length(); ++i) a = (a*(Character.getNumericValue(s.charAt(i)) - 9))%47;
  17.        for (int i = 0; i < r.length(); ++i) b = (b*(Character.getNumericValue(r.charAt(i)) - 9))%47;
  18.  
  19.        if (a == b) writer.println("GO");
  20.        else writer.println("STAY");
  21.    }
  22.  
  23.    public static void main(String[] args) {
  24.        new ride().run();
  25.    }
  26.  
  27.    public void run() {
  28.        try {
  29.            reader = new BufferedReader(new FileReader("ride.in"));
  30.            writer = new PrintWriter(new FileWriter("ride.out"));
  31.            tokenizer = null;
  32.            solve();
  33.            reader.close();
  34.            writer.close();
  35.        }
  36.        catch (IOException e) {
  37.        }
  38.    }
  39.  
  40.    String nextToken() throws IOException {
  41.        if (tokenizer == null || !tokenizer.hasMoreTokens())
  42.            tokenizer = new StringTokenizer(reader.readLine());
  43.        return tokenizer.nextToken();
  44.    }
  45. }

Ya esta, ya he visto mi fallo se me olvido que no empieza desde 1 sino desde 10 ¬¬.
« Última modificación: 13 Noviembre 2011, 17:18 pm por Afsoon » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema resuelto gracias.
Multimedia
morbid 0 778 Último mensaje 31 Enero 2006, 19:56 pm
por morbid
{Resuelto} [vbs] Problema con autocopiar
Scripting
xassiz_ 4 3,063 Último mensaje 15 Septiembre 2009, 20:45 pm
por xassiz_
Problema con Form [Resuelto]
.NET (C#, VB.NET, ASP)
Keyen Night 2 2,296 Último mensaje 23 Junio 2010, 17:44 pm
por Keyen Night
Problema empezando con SDL[RESUELTO]
Programación C/C++
Komodo 4 1,792 Último mensaje 14 Septiembre 2010, 17:38 pm
por Komodo
[Resuelto] Problema con while
Programación C/C++
Rhertz 1 1,557 Último mensaje 1 Mayo 2011, 02:44 am
por Rhertz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines