这道题为什么老是输出2?
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
int inputNumber;
while(cin >> inputNumber)
{
do
{
ivec.push_back(inputNumber % 2);
inputNumber /= 2;
}while(inputNumber);
vector<int>::iterator iter = ivec.begin();
while(*iter == 0 && iter != ivec.end())
{
iter++;
}
cout << pow(2.0, iter - ivec.begin()) << endl;
}
system("pause");
return 0;
}
貌似iter会自增呀,如果换成queue和stack写类似问题也有此问题,咋整?