Java语言程序设计与数据结构(基础篇)课后练习题 第十三章(三)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

public class dishisanzhang {

public static void main(String[] args) throws CloneNotSupportedException {

Scanner input = new Scanner(System.in);

System.out.print("Enter the first rational number: ");

BigInteger n1 = new BigInteger(input.nextInt()+“”);

BigInteger n2 = new BigInteger(input.nextInt()+“”);

Rational r1 = new Rational(n1,n2);

System.out.print("Enter the second second number: ");

BigInteger n3 = new BigInteger(input.nextInt()+“”);

BigInteger n4 = new BigInteger(input.nextInt()+“”);

Rational r2 = new Rational(n3,n4);

System.out.println(n1+“/”+n2+" + “+n3+”/“+n4+” = "+r1.add(r2));

System.out.println(n1+“/”+n2+" - “+n3+”/“+n4+” = "+r1.subtract(r2));

System.out.println(n1+“/”+n2+" * “+n3+”/“+n4+” = "+r1.multiply(r2));

System.out.println(n1+“/”+n2+" / “+n3+”/“+n4+” = "+r1.divide(r2));

System.out.println(n3+“/”+n4+" is "+(n3.floatValue()/n4.floatValue()));

// 3 454

// 7 2389

}

}

13.16

==================================================================

package dishisanzhang;

import java.math.BigInteger;

public class dishisanzhang {

public static void main(String[] args) throws CloneNotSupportedException {

String[] s = args[0].split(“[/ ]”);

if (s.length == 5) {

calculator(s);

} else if (s.length == 6) {

String[] s2 = { s[0], s[1], “/”, s[4], s[5] };

calculator(s2);

}

}

public static void calculator(String[] s) {

BigInteger n1 = new BigInteger(s[0]);

BigInteger d1 = new BigInteger(s[1]);

Rational r1 = new Rational(n1, d1);

BigInteger n2 = new BigInteger(s[3]);

BigInteger d2 = new BigInteger(s[4]);

Rational r2 = new Rational(n2, d2);

System.out.print(Integer.parseInt(s[0]) + “/” + Integer.parseInt(s[1]) + " " + Integer.parseInt(s[2]) + " "

  • Integer.parseInt(s[3]) + “/” + Integer.parseInt(s[4]) + " = ");

switch (s[2].charAt(0)) {

case ‘+’:

System.out.println(Integer.parseInt(r1.add(r2).toString()));

break;

case ‘-’:

System.out.println(Integer.parseInt(r1.subtract(r2).toString()));

break;

case ‘*’:

System.out.println(Integer.parseInt(r1.multiply(r2).toString()));

break;

case ‘/’:

System.out.println(Integer.parseInt(r1.divide(r2).toString()));

}

}

}

13.17

==================================================================

package dishisanzhang;

public class Complex implements Cloneable, Comparable< Complex > {

private double realPart;

private double imaginaryPart;

public Complex() {

}

public Complex(double a) {

this(a, 0);

}

public Complex(double a, double b) {

this.realPart = a;

this.imaginaryPart = b;

}

public double getRealPart() {

return realPart;

}

public double getImaginaryPart() {

return imaginaryPart;

}

public Complex add(Complex c) {

double r = realPart + c.getRealPart();

double i = imaginaryPart + c.getImaginaryPart();

return new Complex(r, i);

}

public Complex subtract(Complex c) {

double r = realPart - c.getRealPart();

double i = imaginaryPart - c.getImaginaryPart();

return new Complex(r, i);

}

public Complex multiply(Complex c) {

double r = realPart * c.getRealPart() - imaginaryPart * c.getImaginaryPart();

double i = realPart * c.getImaginaryPart() + imaginaryPart * c.getRealPart();

return new Complex(r, i);

}

public Complex divide(Complex c) {

double r = (realPart * c.getRealPart() + imaginaryPart * c.getImaginaryPart())

/ (c.getRealPart() * c.getRealPart() + c.getImaginaryPart() * c.getImaginaryPart());

double i = (realPart * c.getImaginaryPart() - imaginaryPart * c.getRealPart())

/ (c.getRealPart() * c.getRealPart() + c.getImaginaryPart() * c.getImaginaryPart());

return new Complex(r, i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值