C语言实现分数加法器

从键盘读入一个求和算式,求出多个分数的和,结果也用分数表达,并约分到最简形式。

如,从键盘读入1/12+5/12+1/3,则输出:5/6

输入描述

分数求和表达式

输出描述

和的分数形式

用例输入 1 

1/12+5/12+1/3

用例输出 1 

5/6

如何求两个分数的和?以\frac{a}{m}+\frac{b}{n}为例。按照数学规则,先对两个分数进行通分操作,找到两个分母的最小公倍数。这里采用的穷举算法,找到两个分母中较大者,这里不妨设为m,看是否能整除另一个分母n。如果不能,则试验2m,3m……最多到n*m,即可找到最小公倍数。

分母统一为最小公倍数,分子分别乘以相应的倍率,然后相加。

对最后的结果进行约分操作。约分这里也采用跟通分类似的操作,依然是穷举的思路。考虑分数a/b ,设x为a和b的最小值,尝试x能否同时整除a和b。如果可以,则x即为最大公约数,分子分母同除以x即可完成约分。不能整除,则x--,一直减到x为1为止。

由于结果需要输出分子和分母,这里的返回值采用了数组。

分数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值