给定两个表示复数的字符串。
返回表示它们乘积的字符串。注意,根据定义 i2 = -1 。
注意:输入字符串不包含额外的空格。 输入字符串将以 a+bi 的形式给出,其中整数 a 和 b 的范围均在 [-100, 100] 之间。输出也应当符合这种形式。
示例:输入: "1+-1i", "1+-1i" 输出: "0+-2i" 解释: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i ,你需要将它转换为 0+-2i 的形式。
解读:一、复数的模拟,写个复数类,方便以后使用。这里只要解决复数的a、b二个值就可以了。
二、从字段串获取值,这里的字段串属于规定的格式,处理起来不用考虑太多。直接先按+拆分,再用库函数,直接转化字段串成数字就可以。
代码: class Complex { int a; int b; public Complex multiply(Complex complex) { Complex cx = new Complex(); cx.a = a * complex.a - b * complex.b; cx.b = a * complex.b + complex.a * b; return cx; } public String toString() { return String.format("%d+%di", a, b); } } public Complex createComplex(String str) { String[] sa = str.split("[\\+i]"); Complex cx = new Complex(); cx.a = Integer.valueOf(sa[0]); cx.b = Integer.valueOf(sa[1]); return cx; } public String complexNumberMultiply(String a, String b) { Complex ca = createComplex(a); Complex cb = createComplex(b); return ca.multiply(cb).toString(); }