2015-10-18 10:42:52 +08:00

27 lines
834 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Source : https://leetcode.com/problems/number-of-1-bits/
// Author : Hao Chen
// Date : 2015-03-30
/**********************************************************************************
*
* Write a function that takes an unsigned integer and returns the number of 1' bits it has
* (also known as the Hamming weight).
*
* For example, the 32-bit integer 11' has binary representation 00000000000000000000000000001011,
* so the function should return 3.
*
* Credits:Special thanks to @ts for adding this problem and creating all test cases.
*
**********************************************************************************/
class Solution {
public:
int hammingWeight(uint32_t n) {
int cnt = 0;
for(;n>0; n/=2){
if (n & 0x1) cnt++;
}
return cnt;
}
};