首页 > ACM题库 > HDU-杭电 > hdu 2503 a/b + c/d[解题报告]C++
2014
02-09

hdu 2503 a/b + c/d[解题报告]C++

a/b + c/d

问题描述 :

给你2个分数,求他们的和,并要求和为最简形式。

输入:

输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正整数a,b,c,d(0<a,b,c,d<1000),表示两个分数a/b 和 c/d。

输出:

输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正整数a,b,c,d(0<a,b,c,d<1000),表示两个分数a/b 和 c/d。

样例输入:

2
1 2 1 3
4 3 2 3

样例输出:

5 6
2 1

#include<iostream>
using namespace std;
int gcd(int a,int b)
{return (b==0? a:gcd(b,a%b));}
int main()
{

	int t,a,b,c,d,e;
	while(scanf("%d",&t)!=EOF)
	{
		while(t--)
		{
			scanf("%d%d%d%d",&a,&b,&c,&d);
			e=gcd((a*d+c*b),b*d);
			printf("%d %d\n",(a*d+c*b)/e,b*d/e);
		}
	}
	return 0;
}

解题转自:http://blog.csdn.net/zcy20121105/article/details/7866666


  1. “可以发现,树将是满二叉树,”这句话不对吧,构造的树应该是“完全二叉树”,而非“满二叉树”。