#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,b,l,x,y;
cin>>a>>b>>l;
double m=1e9,tmp,k=a/b;
for(double i=1;i<=l;i++)
{
for(double j=1;j<=l;j++)
{
tmp=i/j-k;
if(tmp<m&&tmp>=0)
{
x=i;
y=j;
m=tmp;
}
}
}
cout<<x<<" "<<y<<endl;
return 0;
}
using namespace std;
int main()
{
double a,b,l,x,y;
cin>>a>>b>>l;
double m=1e9,tmp,k=a/b;
for(double i=1;i<=l;i++)
{
for(double j=1;j<=l;j++)
{
tmp=i/j-k;
if(tmp<m&&tmp>=0)
{
x=i;
y=j;
m=tmp;
}
}
}
cout<<x<<" "<<y<<endl;
return 0;
}
本文介绍了一个使用双层循环的C++程序,该程序旨在找到最接近给定浮点数a/b的分数,且分子分母不超过指定限制l。通过不断更新最小差距m及其对应的最优分子x和分母y来实现这一目标。
718

被折叠的 条评论
为什么被折叠?



