zoukankan      html  css  js  c++  java
  • noip2014模拟题——强迫症(gcd)

    问题描述
    人行道铺着两行地砖,第一行每块的长度是A/B,第二行每块的长度是X/Y。两行砖块
    第一块的一边是对齐的。

    作为一个强迫症患者,看到这样的地砖你很不爽,于是就想知道,最少隔多少距离后两
    行地砖的缝隙又会对齐。
    输入格式
    输入第一行包含一个整数T,表示测试点组数。
    接下来T 行,每行两个分数,格式为A/B X/Y,两个分数中间用一个空格隔开。
    输出格式
    T 行,每行包含一个分数(若答案为整数则输出整数),表示每组数据的答案。分数必
    须以最简形式输出。
    样例输入
    2
    3/2 5/8
    4/3 3/10
    样例输出
    15/2
    12
    数据范围
    30%的数据A,B,X,Y<=20
    70%的数据T<=10
    100%的数据1<=A,B,X,Y,<=10,000,T<=100,000

    找最大公因数然后乱搞。。。(注意gcd是long long型)

    #include<cstdio>
    #include<iostream>
    using namespace std;
    long long a,b;
    long long n;
    long long gcd(int a,int b)
    {
      if(b==0)return a;
      return gcd(b,a%b);
    }
    int main()
    {
      ios::sync_with_stdio(false);
      freopen("tile.in","r",stdin);
      freopen("tile.out","w",stdout);
      cin>>n;
      for(int i=1;i<=n;i++)
      {
        long long x1,y1,x2,y2;char c;
        cin>>x1>>c>>y1>>x2>>c>>y2;
        long long q=gcd(y1,y2);
        q=y1/q*y2;//分母的最小公倍数
        x1=q/y1*x1,x2=q/y2*x2;
        long long w=gcd(x1,x2);
        long long ans=x1/w*x2;
        long long w2=gcd(ans,q);
        if(w2==q)
        cout<<ans/q<<endl;
        else
        {
          cout<<ans/w2<<'/'<<q/w2<<endl;
        }
      }
      return 0;
    }

  • 相关阅读:
    Java之Jacob调用COM接口DLL-----------------------------------dm。dll
    mac版idea报错:Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    Spring-data-jpa 学习笔记
    Mac下IntelliJ IDEA快捷键大全
    mac怎么快速回到桌面 隐藏所有窗口
    Idea下安装Lombok插件
    spring注解第05课 FactoryBean
    apt 软件安装问题
    常用软件和库安装
    openMP---第一篇
  • 原文地址:https://www.cnblogs.com/937337156Zhang/p/5857874.html
Copyright © 2011-2022 走看看