luogu Cantor表

P1482 Cantor表

我并不知道为什么我只得了20分!

 

#include<iostream>
#include<cstdio>

using namespace std;

int gcd(int x,int y)
{
//    int z;
    if(y==0)
    return x;
    else
    return gcd(y,x%y);
}
int main()
{
    int a,b,c,d,m,n,k,l,mm,nn;
    scanf("%d/%d",&a,&b);
    scanf("%d/%d",&c,&d);
    m=a*c;
    n=b*d;
    if(m>n)
    {
    mm=m;
    nn=n;
    swap(m,n);
    k=mm/gcd(m,n);
    l=nn/gcd(m,n);
    printf("%d %d\n",k,l);
    }
    else if(m<=n)
    {
    k=m/gcd(m,n);
    l=n/gcd(m,n);
    printf("%d %d\n",k,l);
    }
    return 0;
}

 (⊙v⊙)嗯,我终于知道了用辗转相除法时,对a和b的大小关系没有要求。(好好想一下吧)

终于搞明白了!原来题面里要求先输出列,再输出行啊啊啊O(≧口≦)O!调了我一晚上啊!

 

#include<iostream>
#include<cstdio>

using namespace std;

int gcd(int a,int b)
{
    if(b==0)
    return a;
    else
    return gcd(b,a%b);
}
int main()
{
    int a,b,c,d,m,n,k,l,z;
    scanf("%d/%d",&a,&b);
    scanf("%d/%d",&c,&d);
    m=a*c;
    n=b*d;
//    cout<<gcd(m,n)<<endl;
    z=gcd(m,n);
    k=m/z;
    l=n/z;
    cout<<l<<" "<<k<<endl;
    return 0;
}

 

posted @ 2018-06-23 21:49  aquAAA  阅读(153)  评论(0编辑  收藏  举报