题意; 求接近规定 分数 的 最大分数 用到 farey 数列的第二条性质 1 #include2 #include 3 using namespace std; 4 /** 5 |a/b-c/d|最小, 同分的|(ad-bc)/bd| 最小,,即求 6 |ax-by| 最小 7 若a,b 有公约数则同分即可。。最小为0 8 若a,b无公约数,即a,b互质,即求ax-by=1或 -ax+by = 1 9 此时需要注意 若a==1 求解释x=1,y=0.。。所以当a=1时需要特殊处理10 若a!=1 时,,就需要对上面的两个式子ax-by=1或 -ax+by = 1判断,找出最接近的解,即比较分母大的即可11 12 */13 long long ex_gcd(long long a,long long b,long long &x, long long &y){14 if(b==0){15 x =1;16 y =0;17 return a;18 }19 long long d = ex_gcd(b,a%b,x,y);20 long long temp = x;21 x = y;22 y = temp - a/b * y;23 return d ;24 }25 26 27 int main()28 {29 int t;30 cin>>t;31 long long a,b,x,y,gcd,d1,d2,c1,c2;32 char c;33 while(t--){34 cin>>a>>c>>b;35 gcd = ex_gcd(a,b,x,y);36 if(gcd!=1){37 cout< d2)49 cout< <<"/"< <