这是我对codeeval解决方案的回答。显示部分正确。无法弄清楚原因。
https://www.codeeval.com/open_challenges/18/这就是问题所在。 很高兴能得到帮助。
#include<iostream>
#include<fstream>
#include<sstream>
#include<cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
ifstream infile(argv[1]);
if(!infile.is_open())
{
cout << "Error:Cannot open file!";
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
}
string line;
while(getline(infile, line, '\n'))
{
stringstream ss(line);
string token;
getline(ss,token,',');
long x = stoi(token);
getline(ss, token, ',');
long n = stoi(token);
while(n < x)
{
n <<= 1;
}
cout << n << "\n";
}
return 0;
}
答案 0 :(得分:1)
这个问题可以通过更简单的方式解决。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int x,n;
cin>>x >>n;
while( n < x)
n *= 2;
cout<<n<<"\n":
return 0;
}