分数加法(待补充类)

发布时间 2023-04-20 23:20:45作者: PeitongShi

本题输入四个整数

a  b  c   d 

计算分数相加,即a / b  + c / d 的最简分数,即分子 / 分母

样例输入

2  6   4   8

输出

5 / 6

注意:

要求实现分数的最简化以及加运算。

要求输出的分子分母均为化简后结果。例如计算结果为 2 / 6  则应该化简为1 / 3。

如计算结果为负数,则符号放在分子上。例如 -1 / 3  而不是  1 / -3。

#include<iostream>
#include<algorithm>//__gcd()辗转相除法,返回最大公因数 
using namespace std;//不可少 

int main()
{
    int a,b,c,d,fz,fm,gongyinshu;
    cin >> a >> b >> c >> d; 
    /*1、相加 */
    fm = b*d;//分母通分 
    fz = a*d + b*c;//分子结果
    /*2、约分 */ 
    gongyinshu = __gcd(fm,fz);//相加后,返回分子、分母最大公因数 
    fm = fm / gongyinshu;//分母约分
    fz = fz / gongyinshu;//分子约分
    if((fz < 0)||(fm < 0))
        cout << "-" << abs(fz) << "/" << abs(fm);
    else
        cout << fz << "/" << fm;
}

-END