import java.util.Scanner;
/**
*
* @author dam101
*/
public class metodoencriptacion10019 {
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int numero, cant, num, cont1, cont2;
int[] hex = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2};
/*este array esla cantidad de unos en los 10 primeros numeros de la conversion de hexadecimal a binario.*/
cant = leer.nextInt();
for (int i = 0; i < cant; i++) {
numero = leer.nextInt();
num = numero;
cont1 = 0;
cont2 = 0;
while (num >= 1) {
if (num % 2 == 1) {
cont1++;
}
num /= 2;
}
String cadena = Integer.toString(numero);
for (int j = 0; j < cadena.length(); j++) {
cont2 += hex[Character.getNumericValue(cadena.charAt(j))];
}
System.out.println(cont1+" "+cont2);
}
}
}
SOLUCIONADO : Amanda y Santiago
Mostrando entradas con la etiqueta 10019. Mostrar todas las entradas
Mostrando entradas con la etiqueta 10019. Mostrar todas las entradas
miércoles, 21 de enero de 2015
lunes, 12 de enero de 2015
10019 - Método de Encriptación Divertido
El problema
Historia :
Un estudiante del Campus Monterrey ITESM plantea un nuevo
método de encriptación para números. Este método consiste en los siguientes
pasos:
Pasos: Ejemplo
1)
Lee un número N para encriptar M = 265
2)
Interpreta N como un número decimal X1 = 265
(decimal)
3)
Convierte la interpretación decimal de N a su
representación binaria X1 = 100001001 (binario)
4)
Asigna b1 un número igual al número de 1’s en su
representación binaria B1= 3
5)
Interpreta N como un número Hexadecimal X2 = 265
(hexadecimal)
6)
Convierte la interpretación hexadecimal de N a
su representación binaria X2 = 1001100101
7)
Asigna a b2 un número igual al número de 1’s en
la última representación binaria B2 = 5
8)
La encriptación es el resultado de M xor (b1*b2)
M xor (3*5) = 262
Este estudiante pidió el número
de bits a 1 en las dos representaciones para que el pudiera continuar
concursando.
Suscribirse a:
Entradas (Atom)