先看题面,发现很不可做。这比例还得是范围内,还要尽量准确,这怎么找?
然后看了一眼数据范围,发现很可做
由于l<=100,直接双重循环枚举a’和b’就行了
#include<bits/stdc++.h>
using namespace std;
double minn=0x3f3f3f3f;//存当前能取到的最小值
int mina,minb;//a'和b'
int a,b,l;
int main(){
cin>>a>>b>>l;//照题
for(int i=1;i<=l;i++)//a'
for(int j=1;j<=l;j++){//b'
if(1.0*i/j>=1.0*a/b){//记得要强制类型转换
if(1.0*i/j-1.0*a/b<minn){//差比当前最小值小
minn=1.0*i/j-1.0*a/b;//更新
mina=i;//新的a'
minb=j;//新的b'
}
}
}
cout<<mina<<' '<<minb<<endl;//输出
return 0;
}