Description
设计一个类Complex,用于封装对复数的下列操作:
成员变量:实部real,虚部image,均为整数变量;
构造方法:无参构造方法、有参构造方法(参数2个)
成员方法:含两个复数的加、减、乘操作。
复数相加举例: (1+2i)+(3+4i)= 4 + 6i
复数相减举例: (1+2i)-(3+4i)= -2 - 2i
复数相乘举例: (1+2i)*(3+4i)= -5 + 10i
要求:对复数进行连环算术运算。
Input
输入有多行。
第一行有两个整数,代表复数X的实部和虚部。
后续各行的第一个和第二个数表示复数Y的实部和虚部,第三个数表示操作符op: 1——复数X和Y相加;2——复数X和Y相减;3——复数X和Y相乘。
当输入0 0 0时,结束运算,输出结果。
Output
输出一行。
第一行有两个整数,代表复数的实部和虚部。
Sample
Input
1 1
3 4 2
5 2 1
2 -1 3
0 2 2
0 0 0
Output
5 -7
import java.util.*;
class Complex {
int real, image;
public Complex() {
super();
}
public Complex(int real, int image) {
super();
this.real = real;
this.image = image;
}
public void sum(int r1, int i1) {
real += r1;
image += i1;
}
public void div(int r1, int i1) {
real = real - r1;
image = image - i1;
}
public void mul(int r1, int i1) {
int x, y;
x = r1 * real - i1 * image;
y = real * i1 + image * r1;
real = x;
image = y;
}
}
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
Complex complex = new Complex(reader.nextInt(), reader.nextInt());
while (reader.hasNext()) {
int r1 = reader.nextInt();
int i1 = reader.nextInt();
int num = reader.nextInt();
if(r1 == 0 && i1 == 0 && num == 0)
break;
switch (num) {
case 1:
complex.sum(r1, i1);
break;
case 2:
complex.div(r1, i1);
break;
case 3:
complex.mul(r1, i1);
break;
}
}
System.out.println(complex.real+" "+complex.image);
reader.close();
}
}