题意:给出一个整数A(1 <= A <= 100),问A的二进制表示的最低位的1的十进制表示的值。
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1196
——>>方法一:循环除模2找到最低位1,位移输出。。
方法二:用STL的bitset。。
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1196
——>>方法一:循环除模2找到最低位1,位移输出。。
方法二:用STL的bitset。。
只为练练bitset。。
#include <iostream>
#include <bitset>
using std::cin;
using std::cout;
using std::endl;
using std::bitset;
int main()
{
unsigned long A;
while (cin >> A && A)
{
bitset<32> bsA(A);
for (int i = 0; i < 32; ++i)
{
if (bsA.test(i))
{
bsA.reset();
bsA.set(i);
break;
}
}
cout << bsA.to_ulong() << endl;
}
return 0;
}