首页 > 代码库 > 第十周(11.18-11.24)----结对编程----分数计算

第十周(11.18-11.24)----结对编程----分数计算

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

  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 fenshucount f1 = new fenshucount(3,4);

2 fenshucount f2 = new fenshucount(4,5); 

3 System.out.println(f1.plus(f2)); 

  结果

技术分享

 

第十周(11.18-11.24)----结对编程----分数计算