铺瓷砖

来源:互联网 发布:ubuntu mysql安装 编辑:程序博客网 时间:2024/04/27 14:02

这里写图片描述
看似好像是最小公倍数,BUT分数怎么会有最小公倍数呢
问题的实质是要我们求两个分数的最小公倍数。
首先,我们要知道,整数a和b的最小公倍数是a*b/gcd(a,b);
那么怎样来求分数的最小公倍数呢?
我们可以先将两个分数通分,分母变为t1,然后再求分子的最小公倍数t2。
那么答案就是t2/t1,
注:最后要约分

#include <iostream>#include <cstdio>using namespace std;long long gcd(long long a,long long b){    if(!b) return a;    return gcd(b,a%b);}int main(){    freopen("tile.in","r",stdin);    freopen("tile.out","w",stdout);    long long n;    scanf("%lld",&n);    while(n--)    {        long long a,b,x,y;        scanf("%lld%lld%lld%lld",&a,&b,&x,&y);        long long w2=gcd(b,y);        long long sum2=(a/gcd(a,x))*x;        long long w1=gcd(sum2,w2);        if(w2!=w1)        {         printf("%lld/%lld\n",sum2/w1,w2/w1);        }        else         printf("%lld\n",sum2/w1);    }} 
原创粉丝点击