zoukankan      html  css  js  c++  java
  • HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)

    话不多说,日常一水题,水水更健康!┗|`O′|┛ 嗷~~

    a/b + c/d

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14345    Accepted Submission(s): 7470

    Problem Description
    给你2个分数,求他们的和,并要求和为最简形式。
     
    Input
    输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正整数a,b,c,d(0<a,b,c,d<1000),表示两个分数a/b 和 c/d。
     
    Output
    对于每组测试数据,输出两个整数e和f,表示a/b + c/d的最简化结果是e/f,每组输出占一行。
     
    Sample Input
    2
    1 2 1 3
    4 3 2 3
     
    Sample Output
    5 6
    2 1
     
    Source
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2503
    分析:就是求最大公约数与最小公倍数,概念详解请参看我的博客!
    下面给出AC代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int gcd(int a,int b)
     4 {
     5     return b==0?a:gcd(b,a%b);
     6 }
     7 int main()
     8 {
     9     int n;
    10     while(scanf("%d",&n)!=EOF)
    11     {
    12         while(n--)
    13         {
    14             int a,b,c,d;
    15             scanf("%d%d%d%d",&a,&b,&c,&d);
    16             int t=gcd(b,d);//先求出两分母的最大公因式
    17             int m=b*d/t;//求出两分母的最小公倍数
    18             int k=m/b*a+m/d*c;//再计算两分子之和
    19             int x=gcd(k,m);//新的分子与新的分母的比值,先得求出新分子与新分母的最大公因式
    20             int q1=k/x;//求最简整数比,分别输出即可!
    21             int q2=m/x;
    22             printf("%d %d
    ",q1,q2);//注意空格的输出
    23         }
    24     }
    25     return 0;
    26 }
     
  • 相关阅读:
    C++ const用于iterator
    C++实现类似python中的字符串split函数
    简单地解释overwrite
    ubuntu16.04 新安装的系统启动ssh服务
    强化学习7日打卡营-世界冠军带你从零实践--基于表格型方法的 RL
    spark-遇到问题小结
    Spark 读写hive 表
    spark-shell 显示乱码
    机器学习-GBDT和XGboost
    链表
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6675761.html
Copyright © 2011-2022 走看看