题目地址
解题思路
思路就是:利用substr()
函数把复数拆分成两部分,分为实部和虚部,再用复数的运算法则对实部和虚部分别运算。
最后将字符串拼接并在末尾加上i
。
详见下面的代码
代码实现(C++)
class Solution {
public:
string complexNumberMultiply(string num1, string num2)
{
int pos1=num1.find("+");
int pos2=num2.find("+");
int first1=stoi(num1.substr(0,pos1));
int first2=stoi(num2.substr(0,pos2));
int second1=stoi(num1.substr(pos1+1,num1.size()-1-(pos1+1)));
int second2=stoi(num2.substr(pos2+1,num2.size()-1-(pos2+1)));
cout<<first1<<" "<<first2<<" "<<second1<<" "<<second2<<endl;
int ans1=first1*first2-second1*second2;
int ans2=first1*second2+first2*second1;
string res=to_string(ans1)+"+"+to_string(ans2)+"i";
return res;
}
};