数据题。。根据l的小,我们其实是可以枚举的。。
而且由于从小到大枚举时,一个分数的倍数肯定是在它后面枚举的,,所以只要取值判断中没有等号,就不用判互素了、、、
码:
#include<iostream>
#include<cstdio>
using namespace std;
double lin=99999,a,b;
int i,j,ans1,ans2,l;
int main()
{
scanf("%lf%lf%d",&a,&b,&l);
for(i=1;i<=l;i++)
for(j=1;j<=l;j++)
{
if( double(i)/double(j)>=a/b&&double(i)/double(j)-a/b<lin)
lin=double(i)/double(j)-a/b,ans1=i,ans2=j;
}
printf("%d %d",ans1,ans2);
}