hdu2503 a/b + c/d

题目链接
本题题目要求分数相加并进行最简化;
核心思想:运用最大公倍数即可,直接让分数的分子分别乘另一个分母再相加,比上分母相乘,在进行约分即可,不必先求出分母最小公因数,在分子做对应乘法,最后再与分母相约分;利用最大公倍数约减;

#pragma warning(disable:4996);
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int gcd(int a, int b)
{
	if (b == 0)return a;
	else return gcd(b, a % b);
}
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int a, b, c, d;
		cin >> a >> b >> c >> d;
		int e = a * d + b * c;
		int f = b * d;
		cout << e / gcd(e, f) << " " << f / gcd(e, f) << endl;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值