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相乘。
当输入0 0 0时,结束运算,输出结果。
Output
输出一行。
第一行有两个整数,代表复数的实部和虚部。
Sample Input
1 1
3 4 2
5 2 1
2 -1 3
0 2 2
0 0 0
Sample Output
5 -7
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int a, b, c, d, x;
a = in.nextInt();
b = in.nextInt();
while(in.hasNext())
{
c = in.nextInt();
d = in.nextInt();
x = in.nextInt();
if(c == 0 && d == 0 && x == 0)
{
break;
}
else
{
if(x == 1)
{
a += c;
b += d;
}
else if(x == 2)
{
a -= c;
b -= d;
}
else if(x == 3)
{
int f = a * c - b * d;
int s = a * d + b * c;
a = f;
b = s;
}
}
}
System.out.println(a + " " + b);
in.close();
}
}
import java.util.Scanner;
class Number{
int a, b;
Number()
{
a = b = 0;
}
Number(int n, int m)
{
a = n;
b = m;
}
void Print()
{
System.out.println(a + " " + b);
}
void Do(int c, int d, int x)
{
if(x == 1)
{
a += c;
b += d;
}
if(x == 2)
{
a -= c;
b -= d;
}
if(x == 3)
{
int i = a * c - b * d;
int j = a * d + b * c;
a = i;
b = j;
}
}
}
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int a, b, c, d, x;
a = in.nextInt();
b = in.nextInt();
Number p = new Number(a, b);
while(in.hasNextLine())
{
c = in.nextInt();
d = in.nextInt();
x = in.nextInt();
if(c == 0 && d == 0 && x == 0)
{
p.Print();
break;
}
else
{
p.Do(c, d, x);
}
}
in.close();
}
}