NOIP2014 比例简化
#include<stdio.h> #define UP(a,b,c) for(int a=(b);a<=(c);a++) int GCD(int a,int b){if(b==0)return a; else return GCD(b,a%b);} int main(){ int a,b,L,c,d; double ab,mn=1e8; scanf("%d%d%d",&a,&b,&L); ab=1.0*a/b; UP(i,1,L)UP(j,1,L) if(GCD(i,j)==1 && 1.0*i/j>=ab && 1.0*i/j-ab<mn){mn=1.0*i/j-ab; c=i; d=j;} printf("%d %d\n",c,d); return 0; }
#include<stdio.h> int GCD(int a,int b){if(b==0)return a; else return GCD(b,a%b);} int main(){ int a,b,L,i,j,c,d; double ab,mn=1e8; scanf("%d%d%d",&a,&b,&L); ab=1.0*a/b; for(i=1;i<=L;i++) for(j=1;j<=L;j++) if(GCD(i,j)==1) if(1.0*i/j>=ab && 1.0*i/j-ab<mn){mn=1.0*i/j-ab; c=i; d=j;} printf("%d %d\n",c,d); return 0; }