10019 - Funny Encryption Method
Time limit: 3.000 seconds
The Problem
History :A student from ITESM Campus Monterrey plays with a new encryption method for numbers. These method consist of the following steps:
Steps : Example
1) Read the number N to encrypt M = 265
2) Interpret N as a decimal number X1= 265 (decimal)
3) Convert the decimal interpretation of N to its binary representation X1= 100001001 (binary)
4) Let b1 be equal to the number of 1’s in this binary representation B1= 3
5) Interpret N as a Hexadecimal number X2 = 265 (hexadecimal)
6) Convert the hexadecimal interpretation of N to its binary representation X2 = 1001100101
7) Let b2 be equal to the number of 1’s in the last binary representation B2 = 5
8) The encryption is the result of M xor (b1*b2) M xor (3*5) = 262
This student failed Computational Organization, that’s why this student asked the judges of ITESM Campus Monterrey internal ACM programming Contest to ask for the numbers of 1’s bits of this two representations so that he can continue playing.
Task :
You have to write a program that read a Number and give as output the number b1 and b2
The Input
The first line will contain a number N which is the number of cases that you have to process. Each of the following N Lines ( 0<N<=1000) will contain the number M (0<M<=9999, in decimal representation) which is the number the student wants to encrypt.The Output
You will have to output N lines, each containing the number b1 and b2 in that order, separated by one space corresponding to that lines number to cryptSample Input
3265
111
1234
Sample Output
3 56 3
5 5
完整代码:
/*0.016s*/
#include<cstdio>
inline int bitnum(int num)
{
int count = 0;
while (num)
{
if (num & 1) ++count;
num >>= 1;
}
return count;
}
int main()
{
int t, m, b1, b2;
scanf("%d", &t);
while (t--)
{
scanf("%d", &m);
b1 = bitnum(m), b2 = 0;
while (m)
{
b2 += bitnum(m % 10);
m /= 10;
}
printf("%d %d\n", b1, b2);
}
return 0;
}

本文介绍了一种名为趣味加密法的方法,该方法通过将输入数字解释为十进制和十六进制数,转换为二进制表示,并计算其中1的个数来实现加密。文章提供了具体的步骤说明及示例,同时还给出了一个高效的C++代码实现。


被折叠的 条评论
为什么被折叠?



