算法

复数乘法

Posted by ceasarback on July 28, 2018

复数的乘法

题目描述

给两个字符代表两个复数,你需要返回两个复数的乘积。注意i*i=-1。

用例

输入:"1+1i", "1+1i"
输出:"0+2i"
解释:(1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, 你需要转换为 0+2i.

思路

首先将输入的两个str用split分解为两个字符串数组,然后转化为整数,分别标记为(a1+b1)(a2+b2)=a1a2+(-1b1b2)+a1b2+b1*a2。对计算的结果进行处理,使得达到输出的要求。

答题方案

class Solution {
    public String complexNumberMultiply(String a, String b) {
        String result = "";
        // int a1 = a.paseInt(a)
        String[] A = a.split("\\+");
        String[] B = b.split("\\+");
        int a1 = Integer.parseInt(A[0]);
        int b1 = Integer.parseInt(A[1].replace("i",""));
        int a2 = Integer.parseInt(B[0]);
        int b2 = Integer.parseInt(B[1].replace("i",""));
        
        int a1a2 = a1*a2;
        int b1b2 = b1*b2;
        int a1b2a2b1 = (a1*b2) + (a2*b1);
        String afinal = a1a2+(-1*b1b2)+"";
        String bfinal = a1b2a2b1+"i";
        return afinal +"+"+ bfinal;
    }
}