Это решение проблемы с похмелья в POJ, и я думаю, что логика верна, но мое решение не работает на компиляторе POJ, но оно работает корректно на моем g ++ компиляторе. Что не так с моим решением? Вот ссылка на проблему. http://poj.org/problem?id=1003
Я пытался думать, что не так, и я думаю, что что-то не так, как poj принимает вывод и как я предоставляю.
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
float desired=1.00;
while(1)
{
cin>>desired;
if(desired!=0 and desired<=5.20 and desired>=0.01)
{
float sum=0;
int denominator=2;
float num=1;
int total=0;
while(sum<=desired)
{
num=1.00/denominator;
sum+=num;
total+=1;
++denominator;
}
cout<<total<<"\n";
}
else
exit(0);
}
return 0;
}
Я ожидаю, что мое решение верно, ноя не могу думать, где я не прав. Я ожидаю, что выходные 1-я карта (-и) 1-я (-ые) из входных данных 0,04 0,01 0,01, так как он будет заканчиваться на 0,00, должен давать два выхода, но он дает только один выход. Вот ссылка выхода на IDEONE http://ideone.com/1o6HAz