1. 컴퓨터에서의 음수 표현
컴퓨터에서 양수와 음수는 모두 2의 보수로 표현됩니다.
2. n의 이진법에서 k번째 숫자를 찾는 방법
3. lowbit(x): x의 마지막 비트를 반환 1
4. 예: 이진수 1의 수
길이가 n 인 시퀀스가 주어지면 시퀀스에 있는 각 숫자의 이진 표현에서 1 의 수를 찾으십시오 .
입력 형식
첫 번째 줄에는 정수 n 이 포함됩니다 .
두 번째 줄에는 전체 배열을 나타내는 n 개의 정수가 포함됩니다.
출력 형식
n 개의 정수를 포함하는 총 한 줄 . 여기서 i 번째 숫자는 시퀀스에서 i 번째 숫자의 이진 표현에서 1 의 수를 나타냅니다 .
데이터 범위
1≤n≤100000 ,
0≤ 배열 의 요소 값 ≤10 9
입력 샘플:
5
1 2 3 4 5
샘플 출력:
1 1 2 1 2
암호:
#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;
}