假设 a+bi 和 c+di 则:
(a+bi)+(c+di)=(a+c)+(b+d)i
(a+bi)-(c+di)=(a-c)+(b-d)i
(a+bi)(c+di)=(ac-bd)+(bc+ad)i
a+bi 的模为a2+b2的算术平方根
public class Fushu {
private double x, y;
public Fushu(double real, double imaginary) { //定义复数
x = real;
y = imaginary;
}
public String toString() {
return "(" + x + " + " + y + "i" + ")"; //规范输入格式
}
//加法
public Fushu add(Fushu a) { //与另一个复数相加
return new Fushu(x + a.x ,y + a.y);
}
public Fushu add(double a,double b) { //与给定的实部虚部相加
return new Fushu(x + a , y + b);
}
public static Fushu add(Fushu a, Fushu b) { //两个复数相加
return new Fushu(a.x + b.x , a.y + b.y);
}
//乘法
public Fushu mul(Fushu a) { //与另一个复数相乘
return new Fushu(x * a.x - y * a.y ,y * a.x + x * a.y);
}
public Fushu mul(double a,double b) { //与给定的实部虚部相乘
return new Fushu(x * a - y * b , y * a + x * b);
}
public static Fushu mul(Fushu a, Fushu b) { //两个复数相乘
return new Fushu(a.x * b.x - a.y * b.y, a.y * b.x + a.x * b.y);
}
//求模
public static double mo(Fushu a) {
double x = Math.sqrt(a.x * a.x + a.y * a.y);
return x;
}
public static void main(String args[]) {
Fushu x, y, z;
//加法
x = new Fushu(4,5);
y = new Fushu(3.4,2.8);
z = add(x,y);
System.out.println(x + " + " + y + " = " + z);
z = x.add(y);
System.out.println(x + " + " + y + " = " + z);
z = y.add(4,5);
System.out.println(x + " + " + y + " = " + z);
//乘法
x = new Fushu(4,5);
y = new Fushu(3,2);
z = mul(x,y);
System.out.println(x + " * " + y + " = " + z);
z = x.mul(y);
System.out.println(x + " * " + y + " = " + z);
z = y.mul(4,5);
System.out.println(x + " * " + y + " = " + z);
//求模
x = new Fushu(4,5);
double n = mo(x);
System.out.println(n);
}
}