P1482 Cantor表(升级版)

题目:

 

 思路:

1.别被题目吓着了,其实很简单

剥皮之后仅仅是个求最大公约数的问题

代码如下:

#include<cstdio> 
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std;
//找出两个数之间的公因数
int f(int m,int n) {
    if(m>n) 
    swap(m,n);
    int x=1;
    for(int i=2;i<=m;i++){
        if(m%i==0&&n%-i==0)
        x=i;
    }
    return x;
}
int main(){
//    int m,n;
//    cin>>m>>n;
    int a,b,a1,b1,c,d;
    scanf("%d/%d",&a,&b);
    scanf("%d/%d",&a1,&b1);
    c=a*a1,d=b*b1;
    int g=f(c,d);
//    cout<<g<<endl; 
//    cout<<c<<endl;
    c=c/g,d=d/g;
    cout<<d<<" "<<c<<endl;
    return 0;
}
//99/107
//43/512
//54784 4257
无聊就学习 反正没事干
原文地址:https://www.cnblogs.com/miao-xixixi/p/13913345.html