hdu 2503 a/b + c/d
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 <iostream> #include <stdio.h> using namespace std; int a,b,c,d; int yue(int m,int n)//求分子分母的最大公约数 { int tmp; while(n) { tmp=m; m=n; n=tmp%n; } return m; } int main() { int t,m,n,k; cin>>t; while(t--) { cin>>a>>b>>c>>d; m=a*d+b*c; n=b*d; k=yue(m,n); printf("%d %d\n",m/k,n/k);//化简分子分母 } return 0; }
你若是天才,我便是疯子