70分,求助
查看原帖
70分,求助
1059083
samuel666楼主2024/8/24 14:19
#include<bits/stdc++.h>
using namespace std;
int a,b,l;
int main(){
cin>>a>>b>>l;
for(int i=1;i<=min(a,b);i++){
	if(a%i==0&&b%i==0){
		a=a/i;
		b=b/i;
	}
}
double sum=double(max(a,b))/double(min(a,b)),num;
double minn=2e3;
int maxa,maxb;
for(int i=1;i<=l;i++){
	for(int j=i+1;j<=l;j++){
		num=double(j)/double(i);
		if(num>=sum&&num-sum<minn){
			minn=num-sum;
			maxa=j;
			maxb=i;
		}
	}
}
for(int i=1;i<=min(maxa,maxb);i++){
	if(maxa%i==0&&maxb%i==0){
		maxa=maxa/i;
		maxb=maxb/i;
	}
}
//printf("%.6lf%.6lf",num,sum);
//cout<<endl;
if(a>=b){
	cout<<maxa<<" "<<maxb;
}
else{
	cout<<maxb<<" "<<maxa;
}
return 0;
}
2024/8/24 14:19
加载中...