• 解题:分子分母(一)

    2016/12/10 Vinny Hu 13 评论

题目:

我们知道分数由分子和分母进行,所以给定你两个正整数,第一个代表为分子,第二个代表分母。

你能不能把它化为最简的形式输出?

样例如下:

输入:

输出:

输入:

输出:

【解题提示】:

  • 请在评论中先给出你的实现思路;
  • 然后贴出实现的代码;
  • 编程语言不限;
  • 评论支持代码高亮,请点击评论框菜单栏上的 <> 按钮;

 

2 收藏


直接登录
最新评论
  • 王念一 高一学生 2016/12/11

    思路:两数同时除以gcd(min(a, b))。目前还没想到更好的解决方法(遍历取余开销太大)

    代码:

     

    • 王念一 高一学生 2016/12/11

      啊啊啊,逻辑判断失误,main 中间的逻辑改成这样:

       

    • 王念一 高一学生 2016/12/11

      另外这什么破提示。。。这叫格式好嘛

  • 轻语sper 烧锅炉的 2016/12/11

     

  • 轻语sper 烧锅炉的 2016/12/11

    先求最大公约数 ,然后简化分数就可以,很简单的傻瓜式操作。望楼主采纳。

    可以作为一个简化分数代码。

  • 匿名了 JAVA 2016/12/11

    应该用辗转相除来处理

  • 可健康了 程序员 2016/12/12

    mathematica秒解,直接输入a/b就是答案,我都懒的答

  • /**
    * 简化分数
    * @param top 分子
    * @param buttom 分母
    * @return
    */
    public static int[] simplifyFraction(int top, int buttom) {
    Integer min = top > buttom ? buttom : top;
    for (int i = min; i >= 1; i–) {
    if (i == 1) {
    break;
    } else if (top % i == 0 && buttom % i == 0) {
    top /= i;
    buttom /= i;
    simplifyFraction(top, buttom);
    }
    }
    return new int[] { top, buttom };
    }