7-1 Fórmula matemática mágica

Fórmula muy interesante: a- (a ⊕ x) -x = 0
donde ⊕ representa el OR exclusivo bit a bit de dos enteros (en programación, a ⊕ x se representa como a ^ x).
Ahora necesitamos conocer las soluciones no negativas de más ecuaciones con respecto a x.

Formato de entrada:

La primera línea de entrada contiene una t, que es el número de dígitos que se pedirán (1 <= t <= 1000).
Las siguientes t líneas, cada línea da una a (0 <= a <= 2 ^ 30-1)

Formato de salida:

Para cada a dada, genere un número n en una línea, que es el número total de soluciones no negativas para x.

Muestra de entrada:

3
0
2
1073741823

Salida de muestra:

1
2
1073741824

Nota:
explicación de XOR:
operación exclusiva o bit a bit correspondiente a los dos operandos se calcula bit a bit de acuerdo con las siguientes reglas:
0 ^ 0 = 0
0 1 = 1 ^
1 ^ 0 = 1
1 = 1 ^ 0
es decir Si el valor del bit correspondiente es el mismo, el resultado es 0 y el resultado si no es el mismo es 1.
Ejemplo: 9 ⊕ 5 = 9 ^ 5 = 1001 ^ 0101 = 1100 = 12
Sugerencia: Cuando a es 0, x = 0 es la única solución.
Cuando a es 2, x = 0 o x = 2 son ambas soluciones, entonces Dos conjuntos de soluciones.

Análisis simple:
题目中实则要求计算a⊕x=a-x,即当异或结果与减法结果相同时,x的非负解。
易知抑或若等于减,数x满足:x的二进制码为1的那一位在a中对应的那一位中也是1,这样1与1抑或得0,1-1也得0
即我们需计算所给a的二进制转化中有多少个1,然后通过排列组合求解即可
a的二进制有n个1,对应解即为2^n个
代码捞的一,此处就不展示了

Supongo que te gusta

Origin blog.csdn.net/weixin_45989486/article/details/108536945
Recomendado
Clasificación