设计复数库,实现基本的复数加减乘除运算。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
import java.util.Scanner;
public class ADV120 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b = sc.nextDouble();
String m = sc.next();
double c = sc.nextDouble();
double d = sc.nextDouble();
String g = null;
String h =null;
if(c*c+d*d!=0){
char s[]=m.toCharArray();
double e =0;
double f = 0;
switch (s[0]) {
case '+':
e =a+c;
f =b+d;
if(e%(int)e==0){
g=String.valueOf((int)e);
}else{
g=String.valueOf(e);
}
if(f%(int)f==0){
h=String.valueOf((int)f);
}else{
h=String.valueOf(f);
}
if(e==0&&f!=0){
System.out.println(h+"i");
}else{
if(f<0){
System.out.println(g+h+"i");
}else if(f==0){
System.out.println(e);
}else{
System.out.println(g+"+"+h+"i");
}
}
break;
case '-':
e =a-c;
f =b-d;
if(e%(int)e==0){
g=String.valueOf((int)e);
}else{
g=String.valueOf(e);
}
if(f%(int)f==0){
h=String.valueOf((int)f);
}else{
h=String.valueOf(f);
}
if(e==0&&f!=0){
System.out.println(h+"i");
}else{
if(f<0){
System.out.println(g+h+"i");
}else if(f==0){
System.out.println(e);
}else{
System.out.println(g+"+"+h+"i");
}
}
break;
case '*':
e=(a*c-b*d);
f=(a*d+c*b);
if(e%(int)e==0){
g=String.valueOf((int)e);
}else{
g=String.valueOf(e);
}
if(f%(int)f==0){
h=String.valueOf((int)f);
}else{
h=String.valueOf(f);
}
if(e==0&&f!=0){
System.out.println(h+"i");
}else{
if(f<0){
System.out.println(g+h+"i");
}else if(f==0){
System.out.println(e);
}else{
System.out.println(g+"+"+h+"i");
}
}
break;
case '/':
e=(a*c+b*d)/(c*c+d*d);
f=(b*c-a*d)/(c*c+d*d);
if(e%(int)e==0){
g=String.valueOf((int)e);
}else{
g=String.valueOf(e);
}
if(f%(int)f==0){
h=String.valueOf((int)f);
}else{
h=String.valueOf(f);
}
if(e==0&&f!=0){
System.out.println(h+"i");
}else{
if(f<0){
System.out.println(g+h+"i");
}else if(f==0){
System.out.println(e);
}else{
System.out.println(g+"+"+h+"i");
}
}
break;
default:
break;
}
}else{
System.out.println("error");
}
}
}