chapter6

来源:互联网 发布:ubuntu设置桥接模式 编辑:程序博客网 时间:2024/06/02 19:42
import mypackage.*;public class Text {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubRational r1 = new Rational();r1.setNumerator(1);r1.setDenominator(5);Rational r2 = new Rational();r2.setNumerator(3);r2.setDenominator(2);Rational result = r1.add(r2);int a = result.getNumerator();int b = result.getDenominator();System.out.println("1/5+3/2 ="+a+"/"+b);result = r1.sub(r2);a = result.getNumerator();b = result.getDenominator();System.out.println("1/5-3/2 ="+a+"/"+b);result = r1.muti(r2);a = result.getNumerator();b = result.getDenominator();System.out.println("1/5×3/2 ="+a+"/"+b);result = r1.div(r2);a = result.getNumerator();b = result.getDenominator();System.out.println("1/5÷3/2 ="+a+"/"+b);int n = 10 ,k = 1;System.out.println("计算 2/1+3/2+5/3+8/5+13/8+...的前"+n+"项和.");Rational sum = new Rational();sum.setNumerator(0);Rational item = new Rational();item.setNumerator(2);item.setDenominator(1);while(k<=n){sum = sum.add(item);k++;int fenzi = item.getNumerator();int fenmu = item.getDenominator();item.setNumerator(fenzi+fenmu);item.setDenominator(fenzi);}a = sum.getNumerator();b = sum.getDenominator();System.out.println("用分数表示:");System.out.println(a+"/"+b);double doubleResult = (a*1.0)/b;System.out.println("用小数表示:");System.out.println(doubleResult);}}package mypackage;public class Rational {//分子int numerator = 1;int denominator = 1;//设置分子public void setNumerator(int a){//计算最大公约数int c = f(Math.abs(a),denominator);numerator = a/c;denominator = denominator/c;if(numerator<0 && denominator<0 ){numerator = -numerator;denominator = -denominator;}}//设置分母public void setDenominator(int b){//计算最大公约数int c = f(Math.abs(b),denominator);numerator = numerator/c;denominator = b/c;if(numerator<0 && denominator<0 ){numerator = -numerator;denominator = -denominator;}}//获得分子public int getNumerator(){return numerator;}//获得分母public int getDenominator(){return denominator;}//求a、b的最大公约数public int f(int a ,int b){if(a == 0){return 1;}if(a<b){int c = a;a = b;b = c;}int r = a%b;while(r != 0){a = b;b = r;r = a%b;}return b;}//加法运算public Rational add(Rational r){int a = r.getNumerator();int b = r.getDenominator();int newNumerator = numerator * b + denominator * a;int newDenominator = denominator * b;Rational result = new Rational();result.setNumerator(newNumerator);result.setDenominator(newDenominator);return result;}//减法运算public Rational sub(Rational r){int a = r.getNumerator();int b = r.getDenominator();int newNumerator = numerator * b - denominator * a;int newDenominator = denominator * b;Rational result = new Rational();result.setNumerator(newNumerator);result.setDenominator(newDenominator);return result;}//乘法运算public Rational muti(Rational r){int a = r.getNumerator();int b = r.getDenominator();int newNumerator = numerator * a;int newDenominator = denominator * b;Rational result = new Rational();result.setNumerator(newNumerator);result.setDenominator(newDenominator);return result;}//除法运算public Rational div(Rational r){int a = r.getNumerator();int b = r.getDenominator();int newNumerator = numerator * b;int newDenominator = denominator * a;Rational result = new Rational();result.setNumerator(newNumerator);result.setDenominator(newDenominator);return result;}}package liushuixian;public class ComputerAver {}package liushuixian;public class DelScore {}package liushuixian;public class InputSorce {}package liushuixian;public class Line {}

原创粉丝点击