zoukankan      html  css  js  c++  java
  • 第十周(11.18-11.24)----分数计算----(2)对两个分数进行加减乘除

      之前的程序写到可以输出分数的算式,接下来就是要怎么计算这个分式算式。我查阅了资料,目前完成到这个状况,对给定的两个分数计算结果。

      fenshucount里getDinominator是获得分母,getNumerator是获得分子。

      获得最大公约数

     1  public static  int commonDivisor(int x,int y)       //计算2个数的最大公约数。按绝对值计算。  
     2         {  
     3             if(x==0||y==0)  
     4             {  
     5                 return 1;  
     6             }  
     7             int x1;               
     8             int y1;  
     9       
    10             x1=(Math.abs(x)>Math.abs(y))?Math.abs(x):Math.abs(y);                //使x1>y1.  
    11             y1=(Math.abs(x)>Math.abs(y))?Math.abs(y):Math.abs(x);  
    12             int z=1;  
    13                 while(z!=0)   
    14                 {  
    15                 z=x1%y1;  
    16                     x1=y1;  
    17                     y1=z;  
    18                 }   
    19             return x1;  
    20         }  

      实现两个分数相加

    1 public fenshucount plus(fenshucount f2)      //加法运算
    2   {  
    3             int newNumerator=c*f2.getDinominator()+d*f2.getNumerator();  
    4             int newDinominator=d*f2.getDinominator();  
    5       
    6             int maxCommon=commonDivisor(newNumerator,newDinominator);  
    7             return new fenshucount(newNumerator/maxCommon,newDinominator/maxCommon);  
    8   }  

      实现两个分数相减

    1  public fenshucount minus(fenshucount f2)      //减法运算
    2    {  
    3             int newNumerator=c*f2.getDinominator()-d*f2.getNumerator();  
    4             int newDinominator=d*f2.getDinominator();  
    5       
    6             int maxCommon=commonDivisor(newNumerator,newDinominator);  
    7             return new fenshucount(newNumerator/maxCommon,newDinominator/maxCommon);  
    8    } 

      实现两个分数相乘

    1 public  fenshucount multiply(fenshucount f2)                  //乘法运算  
    2         {  
    3             int newNumerator=c*f2.getNumerator();  
    4             int newDinominator=d*f2.getDinominator();  
    5       
    6             int maxCommon=commonDivisor(newNumerator,newDinominator);  
    7             return new fenshucount(newNumerator/maxCommon,newDinominator/maxCommon);  
    8         }  

      实现两个分数相除

     1 public fenshucount divide(fenshucount f2)              //除法运算
     2         {  
     3             if(f2.getNumerator()==0)  
     4             {  
     5                 System.out.println("0不能做除数!");  
     6                 System.exit(0);  
     7             }  
     8              
     9             int newNumerator=c*f2.getDinominator();  
    10             int newDinominator=d*f2.getNumerator();  
    11       
    12             int maxCommon=commonDivisor(newNumerator,newDinominator);  
    13             return new fenshucount(newNumerator/maxCommon,newDinominator/maxCommon);  
    14         }  

       代码测试

    1     fenshucount f1 = new fenshucount(3,4);
    2         fenshucount f2 = new fenshucount(4,5);
    3         System.out.println(f1.plus(f2));
    4         System.out.println(f1.minus(f2));
    5         System.out.println(f1.multiply(f2));
    6         System.out.println(f1.divide(f2));

      结果

  • 相关阅读:
    【转】C++轻量级可配置语法分析器
    [转载]正则表达式大全
    Batch update returned unexpected row count from update 错误解决方法
    [转载]C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)(SamWang)
    Centos配置mono环境
    ASP.NET MVC 4 简介
    添加控制器 Adding a Controller
    [转载]OrmHate
    [转载]张小龙谈移动互联网产品
    [转载]Golden Ratio in logo designs
  • 原文地址:https://www.cnblogs.com/YangXiaomoo/p/6095583.html
Copyright © 2011-2022 走看看