当前位置: 代码迷 >> 综合 >> hdu - 1196 - Lowest Bit(bitset)
  详细解决方案

hdu - 1196 - Lowest Bit(bitset)

热度:70   发布时间:2024-01-10 13:02:48.0
题意:给出一个整数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;
}