当前位置: 代码迷 >> Java相关 >> 分数如何相加
  详细解决方案

分数如何相加

热度:501   发布时间:2009-10-10 14:19:52.0
分数如何相加
比如 1/2+1/3 怎么样让电脑输出 5/6呢? 必须用method来写
public void add()
{
      。。。。。
}
搜索更多相关的解决方案: 相加  分数  

----------------解决方案--------------------------------------------------------
这个问题帮不了你,JAVA里不能重载运算符
----------------解决方案--------------------------------------------------------
提供个思路给楼主,最近人懒,代码就不写了

你可以先设计一个分数的类,将分数格式化,这个应该不算很难吧,然后调用相加的方法
方法里要实现寻找分母的最小公倍数,学过C的话这个应该不成问题,最后分子乘上相应的倍数,相加,输出,搞掂~~~~


----------------解决方案--------------------------------------------------------
按楼上的方法用函数可以实现分数的相加,不过如果要在JAVA里重载"+"是不可能的
----------------解决方案--------------------------------------------------------
回复 4楼 lampeter123
这个是稍微麻烦点,那我把算式当字符串读入,“+”不读入
在计算时自己补一个“+”总该可以吧
----------------解决方案--------------------------------------------------------
import java.util.*;
public class Add {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
     Scanner reader=new Scanner(System.in);
     int a1,a2,b1,b2;
     a1=reader.nextInt();
     a2=reader.nextInt();
     b1=reader.nextInt();
     b2=reader.nextInt();
     add(a1,a2,b1,b2);
    }
    public static void add(int a1,int a2,int b1,int b2)
    {
      int c1,c2;
      c2=a2*b2;
      c1=a1*b2+a2*b1;
      for(int i=c1;i>0;i--)
      {
        if(c1/i*i==c1&&c2/i*i==c2)
            {
            c1=c1/i;
            c2=c2/i;
            }
      }
      System.out.print(c1+"/"+c2);
    }
}



不知符不符合楼主的意思
----------------解决方案--------------------------------------------------------
  相关解决方案