题目大意:
给一个浮点数A和范围L,在L内找两个整数N和D,使得
|A - N / D|的误差最小
解题思路:
遍历就行了
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x;
int L;
while(cin>>x>>L)
{
int i,mark1,mark2;
double er=1e15;
for(i=1;i<=L;i++)
{
int b=(int)round(x*i);
if(b==L+1) b=L;
else if(b>L+1)
break;
double temp=abs(b*1.0-x*i);
if(temp<er)
{
er=temp;mark1=i;mark2=b;
}
}
cout<<mark2<<" "<<mark1<<endl;
}
return 0;
}