1.看了网上的题解大多都是模拟做的,其实这个题是没有什么意思的,之所以写这篇博客是因为想说明一下平时取一个数据的二进制数时,我们可以很简单的使用bitset这个类。至于这个类到底是怎么用的,大家可以自己去看一下C++的文档。我这里给出AC的代码,是十分简洁的。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
bitset<32> nb;
string s;
while (cin >> n&&n)
{
nb = n;
s = nb.to_string();
for (int i = 31; i >= 0; i--)
{
if (s[i] =='1')
{
cout << fixed << setprecision(0) << pow(2, 31 - i) << endl;
break;
}
}
}
return 0;
}