Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. public class Cronometro{
  4.     //Lookup Table
  5.     static byte[][] digito = {//1 2 3 4 5 6 7
  6.                                         {1,1,1,1,1,1,0},//Digito 0
  7.                                         {0,1,1,0,0,0,0},//Digito 1
  8.                                         {1,1,0,1,1,0,1},//Digito 2
  9.                                         {1,1,1,1,0,0,1},//Digito 3
  10.                                         {0,1,1,0,0,1,1},//Digito 4
  11.                                         {1,0,1,1,0,1,1},//Digito 5
  12.                                         {1,0,1,1,1,1,1},//Digito 6
  13.                                         {1,1,1,0,0,0,0},//Digito 7
  14.                                         {1,1,1,1,1,1,1},//Digito 8
  15.                                         {1,1,1,1,0,1,1},//Digito 9
  16.                                      };
  17.     public static void main(String args[]){
  18.         List<Integer> resultados = new ArrayList<>();
  19.         int nDigitos = 5;//Sabemos que el cronometro tiene 5 digitos
  20.         int nCasos = Integer.parseInt(System.console().readLine());
  21.        
  22.         //Recorremos todos los casos
  23.         for (int i = 0; i < nCasos; i++)
  24.         {
  25.             int probabilidad = 1;
  26.             //Recorremos la cantidad de digitos (5)
  27.             for (int j = 0; j < nDigitos; j++){
  28.                 probabilidad*=obtenDigitosPosibles(System.console().readLine());   
  29.             }
  30.             resultados.add(probabilidad);
  31.         }
  32.         for (int i = 0; i < resultados.size() ;i++){
  33.             System.out.println(resultados.get(i));
  34.         }
  35.     }
  36.     //Entrada: una lista de numeros indicando los segmentos activados
  37.     //Salida: el numero de digitos que las contienen (Entrada)
  38.     public static int obtenDigitosPosibles(String flags){
  39.         String []tmp = flags.split(" ");
  40.         int contadores[] = new int[10];
  41.         //Recorremos todos los segmentos que estan activados
  42.         for (int i = 1; i < tmp.length; i++){
  43.             int segmentoActivo = Integer.parseInt(tmp[i]);
  44.             //Recorremos nuestros digitos
  45.             for (int j = 0; j < 10; j++){
  46.                 //Si el segmento se encuentra en ese digito
  47.                 if (digito[j][segmentoActivo - 1] == 1){
  48.                     contadores[j]++;
  49.                 }
  50.             }
  51.         }
  52.         int posibles = 0;
  53.         for (int i = 0; i < 10; i++){
  54.             if (contadores[i] == tmp.length - 1){
  55.                 posibles++;
  56.             }
  57.         }
  58.         return posibles;
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement