1. 程式人生 > >簡單的複數運算(類和物件)

簡單的複數運算(類和物件)

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.*;

public class Main {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		int a=reader.nextInt();
		int b=reader.nextInt();
			while(reader.hasNext())
			{
				int c=reader.nextInt();
			    int d=reader.nextInt();
			    int e=reader.nextInt();
				if(e==1)
				{
					a=a+c;
					b=b+d;
				}
				else  if(e==2)
				{
					a=a-c;
					b=b-d;
				}
				else if(e==3)
				{
					int x=a*c-b*d;
					int y=c*b+a*d;
					a=x;
					b=y;
				}
				else if(c==0&&d==0&&e==0)
				{
					System.out.println(a+" "+b);
					break;
				}
			}
		reader.close();
	}
}

在e 等於3的時候,如果不用x,y進行替代傳出,將會是錯的,即:a=ac-bd; b=cb+ad;原因後一個a在用前一個a的時候已經改變啦!!!