给出两个百分数P%,Q%,求出一个最小数m,使得m*P%-m*Q%之间有一个整数,期中P,Q两位小数
题目很简单就是精度很麻烦,我第一次直接用float来做,卡到5t数据,后来他们说改用double,改了之后到21又卡了
看来精度上需要特殊处理,在这里由于pq只有两位,所以可以先乘以100,最后结果时候需要/10000
#include <stdio.h> #include <math.h> #include <iostream> #include <algorithm> #define IN 1e-6 using namespace std; int main() { double p,q; int st,cnt,pp,qq; while(scanf("%lf%lf",&p,&q)!=EOF) { st=1; p=p*100.0;q=q*100.0; while(1) { pp=st*p; qq=st*q; if(qq/10000-pp/10000>=1&&(int)qq%10000!=0) break; st++; } cout<<st<<endl; } }