欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

力扣每日一题2022-02-25中等题:复数乘法

时间:2023-04-26
复数乘法

题目描述思路

模拟

Python实现Java实现


题目描述

复数乘法


思路 模拟

对于给定的两个复数num1和num2,首先分别得到两个复数的实部和虚部,然后计算两个复数的乘法。用real1和imag1分别表示num1的实部和虚部,用real2,和imag2分别表示num2的实部和虚部,则乘法计算结果为
( r e a l 1 + i m a g 1 ∗ i ) ∗ ( r e a l 2 + i m a g 2 ∗ i ) = ( r e a l 1 ∗ r e a l 2 − i m a g 1 ∗ i m a g 2 ) + ( r e a l 1 ∗ i m a g 2 + r e a l 2 ∗ i m a g 1 ) ∗ i (real1+imag1*i) * (real2+imag2*i) = (real1*real2-imag1*imag2) + (real1*imag2+real2*imag1) * i (real1+imag1∗i)∗(real2+imag2∗i)=(real1∗real2−imag1∗imag2)+(real1∗imag2+real2∗imag1)∗i
得到乘积后,将乘积转为字符串形式返回。

Python实现

class Solution: def complexNumberMultiply(self, num1: str, num2: str) -> str: real1, imag1 = map(int, num1[:-1].split('+')) real2, imag2 = map(int, num2[:-1].split('+')) return f'{real1*real2-imag1*imag2}+{real1*imag2+imag1*real2}i'

Java实现

class Solution { public String complexNumberMultiply(String num1, String num2) { String[] complex1 = num1.split("\+|i"); String[] complex2 = num2.split("\+|i"); int real1 = Integer.parseInt(complex1[0]), imag1 = Integer.parseInt(complex1[1]); int real2 = Integer.parseInt(complex2[0]), imag2 = Integer.parseInt(complex2[1]); return String.format("%d+%di", real1*real2-imag1*imag2, real1*imag2+real2*imag1); }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。