zl程序教程

您现在的位置是:首页 >  其他

当前栏目

每日一题 --- 537. 复数乘法[力扣][Go]

2023-03-14 23:00:15 时间

题目:

复数 可以用字符串表示,遵循 “实部+虚部i” 的形式,并满足下述条件:

实部 是一个整数,取值范围是 [-100, 100]

虚部 也是一个整数,取值范围是 [-100, 100]

i2 == -1

给你两个字符串表示的复数 num1 和 num2 ,请你遵循复数表示形式,返回表示它们乘积的字符串。

解题代码:

func complexNumberMultiply(num1 string, num2 string) string {
    // 先获取实部数值
    var a1,a2,b1,b2 int
    f := func(c rune) bool {
        if c == '+' || c == 'i'{
            return true
        } else {
            return false
        }
    }
    one := strings.FieldsFunc(num1, f)
    two := strings.FieldsFunc(num2, f)
    a1,_ = strconv.Atoi(one[0])
    a2,_ = strconv.Atoi(one[1])
    b1,_ = strconv.Atoi(two[0])
    b2,_ = strconv.Atoi(two[1])
    // 计算
    aa := a1 * b1 - a2 * b2
    bb := a1 * b2 + a2 * b1
    return strconv.Itoa(aa) + "+" + strconv.Itoa(bb) + "i"
}

image