题意:给出一个整数A(1 <= A <= 100),问A的二进制表示的最低位的1的十进制表示的值。
题目链接: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; }