在codeeval上部分正确

时间:2014-03-29 09:32:43

标签: c++

这是我对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;
}

1 个答案:

答案 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;
}