[Base del algoritmo] operación de bits

1. Representación de números negativos en la computadora

En la computadora, tanto los números positivos como los negativos están representados por el complemento a dos.

2. Cómo encontrar el k-ésimo dígito en la representación binaria de n

3. lowbit(x): devuelve el último bit de x 1

4. Ejemplo: el número 1 en binario

Dada una secuencia de longitud n , encuentre el número de 1 en la representación binaria de cada número en la secuencia .

formato de entrada

La primera línea contiene el entero n .

La segunda línea contiene n enteros que representan la matriz completa.

formato de salida

Un total de una línea, que contiene n enteros, donde el i -ésimo número representa el número de 1 en la representación binaria del i -ésimo número en la secuencia .

rango de datos

1≤n≤100000 ,

0≤El valor del elemento en la matriz≤10 9

Muestra de entrada:

5
1 2 3 4 5

Salida de muestra:

1 1 2 1 2

código:

#include <iostream>

using namespace std;

int lowbit(int x)
{
    return x&(-x);
}

int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int x;
        cin>>x;
        
        int res=0;
        while(x) x-=lowbit(x), res++;//每次减去x的最后一位1
        
        cout<<res<<' ';
    }
    
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/m0_67463447/article/details/128680798
Recomendado
Clasificación