Problem 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相乘。
Output
计算数据输出其简化复数形式,如:-2-2i、-4、-3i、1+2i、0。
Sample Input
1 1 3 4 2 5 2 1 2 -1 3 0 2 2
Sample Output
5-7i
Hint
输入与输出形式示例:
如果输入:
2 3
-2 1 1
则输出:4i
如果输入:
1 2
-1 -2 1
则输出:0
复数的输出形式示例:
实部 虚部 输出形式
0 0 0
-4 0 -4
0 4 4i
3 2 3+2i
3 -2 3-2i
如果输入:
2 3
-2 1 1
则输出:4i
如果输入:
1 2
-1 -2 1
则输出:0
复数的输出形式示例:
实部 虚部 输出形式
0 0 0
-4 0 -4
0 4 4i
3 2 3+2i
3 -2 3-2i
Source
import java.util.*; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); Complex cc = new Complex(n,m); while(sc.hasNext()) { n = sc.nextInt(); m = sc.nextInt(); int o = sc.nextInt(); if(o == 1) cc.add(n,m); else if(o==2) cc.sub(n, m); else if(o==3) cc.mul(n, m); } if(cc.real == 0 && cc.image == 1) System.out.println("i"); else if(cc.real == 0 && cc.image == -1) System.out.println("-i"); else if(cc.real == 0 && cc.image != 0) System.out.println(cc.image + "i"); else if(cc.real == 0 && cc.image == 0) System.out.println("0"); else if(cc.real != 0 && cc.image == 0) System.out.println(cc.real); else if(cc.real != 0 && cc.image == 1) System.out.println(cc.real+"+i"); else if(cc.real != 0 && cc.image == -1) System.out.println(cc.real + "-i"); else if(cc.real != 0 && cc.image > 0) System.out.println(cc.real+"+"+cc.image+"i"); else if(cc.real != 0 && cc.image < 0) System.out.println(cc.image+"-"+cc.image+"i"); } } class Complex { public int real; public int image; public Complex(int real, int image) { super(); this.real = real; this.image = image; } public void add(int n,int m) { real = real + n; image = image + m; } public void sub(int n,int m) { real = real - n; image = image - m; } public void mul(int n,int m) { int h = real*n - image*m; image = real*m + image*n; real = h; } }