Java有理数的四则运算
2012-11-05 10:39
260 查看
实现对有理数的加减乘除运算,以及求最大公约数并约分。
文件1:Fraction.java
文件2:Rational.java
文件3:RationalTest.java
Output Test Result:
文件1:Fraction.java
public class Fraction { int num; int den; }
文件2:Rational.java
public class Rational { int a; int b; Fraction f = new Fraction(); boolean dowhile = true; public Rational(int a, int b){ //约分 f.num = a; f.den = b; doFraction(f); this.a = f.num; this.b = f.den; } public String toString(){ //转换成分式 if (a!=b) return Integer.toString(this.a) + '/' + Integer.toString(this.b); else return "1"; } public Rational add(Rational r){ //加法运算 return new Rational(this.a * r.b + this.b * r.a,this.b * r.b); } public Rational subtract(Rational r){ //减法运算 return new Rational(this.a * r.b - this.b * r.a,this.b * r.b); } public Rational multiply(Rational r){ //乘法运算 return new Rational(this.a * r.a,this.b * r.b); } public Rational divide(Rational r){ //除法运算 return new Rational(this.a * r.b,this.b * r.a); } public String cal(){ if (a % b == 0) return Integer.toString(a/b); else return String.valueOf((float)a / (float)b); } //约分 public void doFraction(Fraction f){ int subnum = 1; int min = Math.min(f.num, f.den); //找出最大公约数 for(int i=2;i<=min;i++){ if((f.num%i==0)&&(f.den%i==0)){ subnum = i; } } f.num = f.num/subnum; f.den = f.den/subnum; } }
文件3:RationalTest.java
public class RationalTest { public static void main(String[] args){ Rational a = new Rational(2,3); Rational b = new Rational(3,7); Rational c = new Rational(5,9); Rational s = a.add(b).add(c); System.out.println("Calculate 1: " + a.toString() + " + " + b.toString() + " + " + c.toString() + " = " + s.toString()); System.out.println("Calculate 2: " + a.toString() + " + " + b.toString() + " + " + c.toString() + " = " + s.cal()); Rational i = new Rational(3,4); Rational j = new Rational(2,3); Rational k = i.multiply(j); System.out.println(k.toString() + " --> " + k.cal()); //约分 Rational sum = new Rational(52,68); System.out.println(sum.toString()); } }
Output Test Result:
Calculate 1: 2/3 + 3/7 + 5/9 = 104/63 Calculate 2: 2/3 + 3/7 + 5/9 = 1.6507937 1/2 --> 0.5 13/17
相关文章推荐
- 有理数的四则运算 C、java
- Java实现四则运算,使用堆栈,检查语法
- java实现任意四则运算表达式求值算法
- JAVA实现简单四则混合运算
- (java) 四则运算(包含分数)
- java中BigDecimal类的精确四则运算工具类Arith
- Android用java数组实现计算器的四则运算
- java实现一个整数和一个小数的四则运算和求最大值,平均值。
- java语言的科学与艺术-编程练习---简单的四则运算计算器
- java实现简单的四则运算
- 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)
- 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
- java小练习(实现分数的四则运算)
- java 解析四则混合运算表达式并计算结果
- zzuli 1037 四则运算 JAVA
- java四则运算表达式不包含括号
- java实现字符串四则运算公式解析工具类的方法
- java 四则运算 栈的实现(原文 http://justsee.iteye.com/blog/1125174)
- java 四则运算(没有文章的博客都有点击率,太对不起观众了囧)
- PATB1034.有理数的四则运算