第十周(11.18-11.24)----结对编程----分数计算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十周(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)----结对编程----分数计算的主要内容,如果未能解决你的问题,请参考以下文章
第十周(11.18-11.24)----结对项目----出带分数的题目