怎么判断一个数是二的倍数,怎么求一个数中有几个1,说一下你的思路并手写代码
int mian() { int num = 119; /*判断是否是二的倍数*/ if (num & 0b1) { cout<<"odd"<<endl; } else { cout<<"even"<<endl; } /*10进制1的个数*/ int m10 = num, sum10 = 0; while (m10) { if (m10 % 10 == 1) sum10++; m10 /= 10; } cout<<sum10<<endl; /*2进制1的个数*/ int m2 = num, sum2 = 0; while (m2) { sum2++; m2 = m2 & (m2-1); } cout<<sum10<<endl; return 0; }
直接将int转换为string int work(int &a) { int num = 0; string str = to_string(a); for (int i = 0; i < str.size(); i++) { if(str[i] == '1') num++; } return num; }