怎么判断一个数是二的倍数,怎么求一个数中有几个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;
}