题意:给出一个整数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;
}