问题:请完成分数的加法运算,一个分数由分子n和分母m组成,分子和分母均为1-100的正整数,其表现形式为“n/m”,给定2个分数,试计算他们相加后的结果,结果要求为精确的最简表示(即分子分母不可再约分,且分母不可为1)
输入:两个分数
输出:最终的结果
示例:
输入:1/2 1/3
输出:5/6
输入:33/11 56/14
输出:7
思路:使用最小公倍数(先求a,b最大公约数c,则a*b/c为最小公倍数)
和=(最小公倍数/分母1)*分子1+(最小公倍数/分母2)*分子2
注意:若求出来来的和为整数,则需化简(如 14/7 需要化为2)
#include<stdio.h>
int zuidagongyueshu(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int zuixiaogongbeishu(int a, int b) {
return a * (b / zuidagongyueshu(a, b));
}
int main() {
int a, b, c, d;
scanf("%d/%d %d/%d", &a, &b, &c, &d);
int y = zuixiaogongbeishu(b, d);
int x = a*(y / b) + c*(y / d);
if (x % y == 0) printf("%d", x / y);
else printf("%d/%d", x, y);
return 0;
}