【数学基础】最简分数

最简分数

Time Limit 1000ms

Memory Limit 65536K

description

给定4个正整数a,b,c,d,它们的范围均小于10000,求a/b + c/d的值,要求化为最简分数。
							

input

输入数据有多组,每组1行,即a,b,c,d。
							

output

输出占一行,请看样例。
							

sample_input

1 2 1 3
							

sample_output

5/6


#include <stdio.h>
#include <stdlib.h>

long long GCD(long long a,long long b);
long long LCM(long long a,long long b);

main()
{
    long long num1,num2,lcm,gcd,m,n,sum;
    long long a1,a2;
    while(scanf("%lld%lld%lld%lld",&a1,&num1,&a2,&num2)!=EOF)
    {
        lcm=LCM(num1,num2);
        m=a1*(lcm/num1);
        n=a2*(lcm/num2);
        sum=m+n;
        gcd=GCD(sum,lcm);
        sum=sum/gcd;
        lcm=lcm/gcd;
        printf("%lld/%lld\n",sum,lcm);
    }
}
long long GCD(long long num1,long long num2)
{
    if (num1%num2==0)
    {
        return num2;
    }
    else
        return GCD( num2,num1%num2) ;
}
long long LCM(long long a,long long b)
{
    long long temp_lcm;
    temp_lcm=a/GCD(a,b)*b;
    return temp_lcm;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值