複數的運算(類和物件)
阿新 • • 發佈:2019-01-08
複數的運算(類和物件)
Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic DiscussProblem Description
設計一個類Complex,用於封裝對複數的下列操作: 成員變數:實部real,虛部image,均為整數變數; 構造方法:無參構造方法、有參構造方法(引數2個) 成員方法:含兩個複數的加、減、乘操作。Input
輸入有多行。
第一行有兩個整數,代表複數X的實部和虛部。
後續各行的第一個和第二個數表示複數Y的實部和虛部,第三個數表示操作符op: 1——複數X和Y相加;2——複數X和Y相減;3——複數X 和Y相乘。
Output
計算資料輸出其簡化複數形式,如:-2-2i、-4、-3i、1+2i、0。
Example Input
1 1 3 4 2 5 2 1 2 -1 3 0 2 2
Example 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
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 Complex add(Complex r)
{
int a=this.real+r.real;
int b=this.image+r.image;
Complex result=new Complex(a,b);
return result;
}
public Complex sub(Complex r)
{
int a=this.real-r.real;
int b=this.image-r.image;
Complex result=new Complex(a,b);
return result;
}
public Complex muti(Complex r)
{
int a=this.real*r.real-this.image*r.image;
int b=this.real*r.image+this.image*r.real;
Complex result=new Complex(a,b);
return result;
}
}
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int real;
int image;
real=in.nextInt();
image=in.nextInt();
Complex complex=new Complex(real,image);
while(in.hasNext())
{
real=in.nextInt();
image=in.nextInt();
int f=in.nextInt();
Complex r=new Complex(real,image);
if(f==1)
{
complex=complex.add(r);
}
else if(f==2)
{
complex=complex.sub(r);
}
else if(f==3)
{
complex=complex.muti(r);
}
}
if(complex.real==0)
{
if(complex.image==0)System.out.println("0");
else if(complex.image==1)System.out.println("i");
else if(complex.image==-1)System.out.println("-i");
else System.out.println(complex.image+"i");
}
else if(complex.image==0)
System.out.println(complex.real);
else
{
if(complex.image==1)
{
System.out.println(complex.real+"+"+"i");
}
else if(complex.image==-1)
{
System.out.println(complex.real+"-i");
}
else if(complex.image>0)
{
System.out.println(complex.real+"+"+complex.image+"i");
}
else
{
System.out.println(""+complex.real+complex.image+"i");
}
}
}
}