C语言---辗转相除法 HDU 2503
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
#include <stdio.h>
int count (int m,int n);
int main (){
    int t,a,b,c,d;
    int up,down;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d%d%d",&a,&b,&c,&d);
        down=b*d;
        up=a*d+b*c;
        if (down==up){
            printf("1 1\n");
            continue;
        }
        printf("%d %d\n",up/count(up,down),down/count(up,down));
    }
    return 0;
}
int count (int m,int n){
    int r,t;
    if (m>n){
        t=m;
        m=n;
        n=t;
    }
    while(m){
        r=n%m;
        n=m;
        m=r;
    }
    return n;
}
C语言---辗转相除法 HDU 2503的更多相关文章
- HDU.2503 a/b + c/d (分式化简)
		
a/b + c/d Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
 - HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
		
话不多说,日常一水题,水水更健康!┗|`O′|┛ 嗷~~ a/b + c/d Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768 ...
 - C语言辗转相除法求2个数的最小公约数
		
辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...
 - HDOJ(HDU)  2503  a/b + c/d(最大公约数问题)
		
Problem Description 给你2个分数,求他们的和,并要求和为最简形式. Input 输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正 ...
 - hdu 2503 1713 1108 最小公倍数&最大公约数
		
gcd模板: __int64 gcd(__int64 a,__int64 b) { retur b==0?a:gcd(b,a%b); } 1108: #include<iostream> ...
 - hdu 2503 a/b + c/d
		
Problem Description 给你2个分数,求他们的和,并要求和为最简形式. Input 输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四 ...
 - HDU 2503 (数论,最大公约数)
		
a/b + c/d Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
 - Least Common Multiple (HDU - 1019) 【简单数论】【LCM】【欧几里得辗转相除法】
		
Least Common Multiple (HDU - 1019) [简单数论][LCM][欧几里得辗转相除法] 标签: 入门讲座题解 数论 题目描述 The least common multip ...
 - HDU 2024 C语言合法标识符
		
http://acm.hdu.edu.cn/showproblem.php?pid=2024 Problem Description 输入一个字符串,判断其是否是C的合法标识符. Input 输入 ...
 
随机推荐
- Oracle 如何循环查询结果集,进行新增或修改
			
Oracle的PL/SQL中怎样循环查询的结果集,然后根据查询结果进行判断,是新增或修改操作 loop循环例子 for item in (select a,b,c from table_a where ...
 - post和get的使用场景和区别
			
使用场景: 区别: ①传送方式不同:get通过地址栏传输,post通过报文传输. ②get产生一个TCP数据包,post产生两个数据包,对于get方式的请求,浏览器会把http header和data ...
 - Standalone的更改方式
			
1.更改Game视图中的Standalone分辨率 2.在unity中菜单栏中 File---->Build Settings(Ctrl+Shift+B)---->Player Setti ...
 - objectstate对象三种状态
			
1.临时状态:new对象的过程,刚被创建出来,数据库中没有对应数据 2.持久状态:session.save(),数据库中有对应数据,session中也有对应数据 3游离状态:数据库中有对应数据,ses ...
 - [Linux]Linux下rsync服务器和客户端配置
			
一.rsync简介 Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异( ...
 - 在命令行中的vim编辑器加上行号
			
在使用vim编辑器时运行脚本程序纠察缺少相应的行号,检测起来非常不方便, 所以在vim编辑器每行前面加上相应的行号: 输入命令::set nu 按下回车,完成
 - 读写锁 SRWLOCK
			
读写锁在对资源进行保护的同时,还能区分想要读取资源值的线程(读取者线程)和想要更新资源的线程(写入者线程). 对于读取者线程,读写锁会允许他们并发的执行.当有写入者线程在占有资源时,读写锁会让其它写入 ...
 - Core Java 面经
			
1 面向对象的特征有哪些方面? (1)抽象,抽象就是忽略与当前目标无关的部分,抽象包含两个方面,一是过程抽象,一是数据 (2)继承,是Java中允许和鼓励类重用的思想的体现,, 它提供了一种方式,可 ...
 - Problem E: 编写函数:Swap (I) (Append Code)
			
Description 编写用来交换两个数的函数,使得“Append Code”中的main()函数能正确运行. ------------------------------------------- ...
 - Unity3d代码及效率优化总结
			
1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU. 2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unli ...