537. 复数乘法题解
题目来源:537. 复数乘法
2022.02.25 每日一题
每日一题专栏地址:LeetCode 每日一题题解更新中❤️💕
今天就要返校了,一会更新完题解就走了,回去就见到我的好大儿们了,哈哈哈
今天的题目就是两个复数相乘
复数1: A = a + b i A=a+bi A=a+bi,复数2: B = c + d i B=c+di B=c+di
可得 A B = ( a c − b d ) + ( a d + b c ) i AB = (ac-bd)+(ad+bc)i AB=(ac−bd)+(ad+bc)i
那么我们只需要找到对于的 a
、b
、c
、d
即可
class Solution {
public:
string complexNumberMultiply(string num1, string num2) {
int len1 = num1.size(), len2 = num2.size();
int i;
for (i = 0; i < len1; i++)
if (num1[i] == '+')
break;
int a = stoi(num1.substr(0, i));
int b = stoi(num1.substr(i + 1, len1 - 1));
for (i = 0; i < len2; i++)
if (num2[i] == '+')
break;
int c = stoi(num2.substr(0, i));
int d = stoi(num2.substr(i + 1, len2 - 1));
// (ac-bd)+(ad+bc)i
return to_string(a * c - b * d) + "+" + to_string(a * d + b * c) + "i";
}
};
class Solution {
public String complexNumberMultiply(String num1, String num2) {
int len1 = num1.length(), len2 = num2.length();
int i;
for (i = 0; i < len1; i++)
if (num1.charAt(i) == '+') break;
int a = Integer.parseInt(num1.substring(0, i));
int b = Integer.parseInt(num1.substring(i + 1, len1 - 1));
for (i = 0; i < len2; i++)
if (num2.charAt(i) == '+') break;
int c = Integer.parseInt(num2.substring(0, i));
int d = Integer.parseInt(num2.substring(i + 1, len2 - 1));
// (ac-bd)+(ad+bc)i
return (a * c - b * d) + "+" + (a * d + b * c) + "i";
}
}