本文共 1904 字,大约阅读时间需要 6 分钟。
提前说明:正确代码下的测试数据:
#include#include #include #include int gcd( int x, int y ){ if( y == 0 ) return x; else return gcd( y, x % y ); }int lcm( int x, int y ){ return x / gcd( x, y ) * y; }int main(){ int T; scanf( "%d", &T ); while( T-- ) { int a, b, c, d, rx, ry; scanf( "%d/%d", &a, &b ); scanf( "%d/%d", &c, &d ); int t = gcd( a, b ); a /= t, b /= t; t = gcd( c, d ); c /= t, d /= t; if( gcd( b, d ) == 1 ) { printf( "%d\n", lcm( a, c ) ); } else { printf( "%d/%d\n", lcm( a, c ), gcd( b, d ) ); } } return 0;}
#include#include #include using namespace std;__int64 gcd(__int64 a,__int64 b){ __int64 c; if(a >cas; while(cas--){ scanf("%I64d/%I64d",&c1,&t1); //在这里提醒一下,用long long型的过不了! //因为这个WA的好多次! scanf("%I64d/%I64dd",&c2,&t2); k=t1*t2; m=t2*c1; n=t1*c2; p=min_times(m,n); h=gcd(p,k); if(h==k){ printf("%I64d\n",p/h); } else{ printf("%I64d/%I64d\n",p/h,k/h); } } return 0;}