592. 分数加减运算
解题思路:
需要知道分数相加减的公式(对于高中生来说,一眼明白,对于我这种社畜来说,得回忆一下 ,平常不用真想不起来)
a/b + c/d = (a * d +c * b) / (b * d)
需要知道求最大公约数的公司
辗转相除法 比如 6 和 30 进行 求最大公倍数
余数= a%b;
while(余数 != 0){
a=余数;
b=a;
余数=a%b;
}
return 被除数 b;
过程: 我们先获取入参的长度
定义 一个 分子 和分母 作为 累计求和的中间 态 默认为0 即 分子为0 分母为1
定义 下表为0 当获取一个数字时,我们移动下标
循环判断 当前下标小于 数组长度时
判断是否包含 - 包含 标识为 - 1 不包含是为 1
循环判断是否 超过边界 以及 是否是数组
这样可以隔离 获取 分子 分母 分子 分母
循环执行完后,需要 index++
跳过 /
外层循环执行完毕后
判断分子是否为0
为0时返回
反之 需要化简 为 不可除状态
分子 分母 同时除最大公约数返回