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).
Y este es el código que tengo hecho
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.
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 (java) [Seleccionar]
public class ride {
private int valorGrupo;
private int valorNave;
private int mod;
private String grupo;
private String nave;
private BufferedReader in;
private PrintWriter out;
private StringTokenizer st;
public ride() throws Exception{
try
{
in = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(this.getClass().getSimpleName()+".in")));
out = new PrintWriter(new FileWriter(this.getClass().getSimpleName()+".out"));
String datos = in.readLine().trim();
st = new StringTokenizer(datos);
nave = st.nextToken();
while((datos = in.readLine()) != null){
st = new StringTokenizer(datos);
grupo = st.nextToken();
}
if(grupo.length() > 6 || grupo.length() == 0 || nave.length() > 6 || nave.length() == 0)
System.exit(0);
valorGrupo = 1;
valorNave = 1;
for(int i = 0; i < grupo.length(); i++){
valorGrupo *= Character.getNumericValue(grupo.charAt(i));
}
for(int i = 0; i < nave.length(); i++){
valorNave *= Character.getNumericValue(nave.charAt(i));
}
mod = 47;
}catch (Exception e) {
throw new Exception(e);
}finally
{
if(in != null)
in.close();
if(out != null)
out.close();
}
}
public static void main(String[] args) {
try
{
new ride();
System.exit(0);
}catch(Exception e){
e.printStackTrace();
System.exit(-1);
}
}
}
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.