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时返回

    反之 需要化简 为 不可除状态

    分子 分母 同时除最大公约数返回

      

posted @ 2022-07-27 15:20  铁柱97  阅读(264)  评论(0)    收藏  举报