简单的复数运算(类和对象)

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

AC代码:

import java.util.Scanner;

class Complex {
	int x, y;

	public Complex() {
	}

	public Complex(int x, int y) {
		this.x = x;
		this.y = y;
	}

	public Complex add(Complex f) {
		int x1 = x + f.x;
		int y1 = y + f.y;
		return new Complex(x1, y1);
	}

	public Complex sub(Complex f) {
		int x1 = x - f.x;
		int y1 = y - f.y;
		return new Complex(x1, y1);
	}

	public Complex nul(Complex f) {
		int x1 = x * f.x - y * f.y;
		int y1 = x * f.y + y * f.x;
		return new Complex(x1, y1);
	}
}

public class Main {
	public static void main(String[] args) {
		Scanner mi = new Scanner(System.in);
		Complex p = new Complex(mi.nextInt(), mi.nextInt());
		while (true) {
			int i = mi.nextInt();
			int j = mi.nextInt();
			int op = mi.nextInt();
			if (i == 0 && j == 0 && op == 0) {
				break;
			}
			Complex q = new Complex(i, j);
			switch (op) {
			case 1:
				p = p.add(q);
				break;
			case 2:
				p = p.sub(q);
				break;
			case 3:
				p = p.nul(q);
				break;
			}
		}
		System.out.println(p.x + " " + p.y);
		mi.close();
	}
}

——————
余生还请多多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值