软件工程师面试100题(算法)之整数的二进制表示中1的个数(两种方法)
程序员面试100题(算法)之整数的二进制表示中1的个数(两种方法)
// 程序员面试100题(算法)之整数的二进制表示中1的个数 #include "stdafx.h" #include <iostream> using namespace std; int NumberOf1_s1(int num) { int count = 0; unsigned int flag = 1; while(flag != 0) { if((num & flag) != 0) { count++; } flag = flag << 1; } return count; } int NumberOf1_s2(int num) { int count = 0; while(num != 0) { num = (num - 1) & num; count++; } return count; } int _tmain(int argc, _TCHAR* argv[]) { int num = 0; cin >> num; cout << NumberOf1_s2(num) << endl; return 0; }