洛谷 P2118 【比例简化】

mac2024-11-11  11

先看题面,发现很不可做。这比例还得是范围内,还要尽量准确,这怎么找?

然后看了一眼数据范围,发现很可做

由于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; }
最新回复(0)