您的位置:首页 > 其它

537. Complex Number Multiplication

2017-04-02 19:47 639 查看
这道题主要是实现复数的乘法(主要是实现题目的特殊要求)

利用string.split(“\+”)将字符串“+”分开得到复数的实部和虚部

(a1+a2*i)*(b1+b2*i)=(a1*b1-a2*b2)+(a1*b2+a2*b1)*i,但是当结果为负数时候,有特殊的形式“+-”,所以需数要进行判断正负,具体代码如下:

public String complexNumberMultiply(String a, String b) {
String[] A=a.split("\\+");
String[] B=b.split("\\+");
int a1=Integer.parseInt(A[0]);
int a2=Integer.parseInt(A[1].replace("i", ""));
int b1=Integer.parseInt(B[0]);
int b2=Integer.parseInt(B[1].replace("i", ""));
int re=a1*b1-a2*b2;
int im=a1*b2+a2*b1;
StringBuffer sb=new StringBuffer();
sb.append(re);
sb.append("+");
if (im<0) {
sb.append("-"+Math.abs(im));
}else {
sb.append(Math.abs(im));
}
sb.append("i");
return sb.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: