设计一个类Complex,用于封装对复数的下列操作:
成员变量:实部real,虚部image,均为整数变量;
构造方法:无参构造方法、有参构造方法(参数2个)
成员方法:含两个复数的加、减、乘操作。
复数相加举例: (1+2i)+(3+4i)= 4 + 6i
复数相减举例: (1+2i)-(3+4i)= -2 - 2i
复数相乘举例: (1+2i)*(3+4i)= -5 + 10i
要求:对复数进行连环算术运算。
提示:如果用PYTHON语言实现,不必设计Complex类,可以使用内置的复数数据类型,完成复数的算术运算。
输入格式:
输入有多行。
第一行有两个整数,代表复数X的实部和虚部。
后续各行的第一个和第二个数表示复数Y的实部和虚部,第三个数表示操作符op: 1——复数X和Y相加;2——复数X和Y相减;3——复数X和Y相乘。
当输入0 0 0时,结束运算,输出结果。
输出格式:
输出一行。
第一行有两个整数,代表复数的实部和虚部,实部和虚部之间用1个空格分开。
输入样例:
1 1
3 4 2
5 2 1
2 -1 3
0 2 2
0 0 0
输出样例:
5 -7
import java.util.Scanner;
class Complex {
int real;
int image;
public Complex() {
}
public Complex(int real, int image) {
this.real = real;
this.image = image;
}
public void add(int a, int b) {
real = real + a;
image = image + b;
}
public void odd(int a, int b) {
real = real - a;
image = image - b;
}
public void mul(int a,int b){
int c= real;
int d= image;
real = (a*c) - (b*d);
image = (a*d) + (b*c);
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Complex complex = new Complex(scanner.nextInt(), scanner.nextInt());
loop: while (true){
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
switch (c){
case 1:
complex.add(a,b);
break;
case 2:
complex.odd(a,b);
break;
case 3:
complex.mul(a,b);
break;
default: break loop;//退出标签(loop)所标的循环
}
}
System.out.println(complex.real+" "+complex.image);
}
}