题目地址:http://xcacm.hfut.edu.cn/problem.php?id=1200
这道题的数据并不是很大,所以可以直接从小开始算,不需要去寻找最优的算法
#include<iostream>
using namespace std;
int n,m,tt,l;
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
int i,j,k;
while(cin>>n>>m>>l)
{
double a1=(double)n/m;//先将结果用double 算出来
bool flag=0;
int fx,fy;
double M=1000000;
for(i=1;i<=l;i++)
{
for(j=1;j<=l;j++)
{
if(gcd(i,j)==1)
{
double a2=(double)i/j;
if(a2>=a1)
{
if(a2-a1<M)
{
fx=i;
fy=j;
M=a2-a1;
}
}
}
}
}
cout<<fx<<' '<<fy<<endl;
}
}