版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luke2834/article/details/82746790
题意
- 就是两个复数以字符串形式输入,计算相加结果
思路
- 思路很简单,就是用+号切字符串,再算就行了
- 记下来的原因,主要是记录下string split的函数,以后方便找
实现
class Solution {
public:
void split(string& s, vector<string>& res, const string& c){
string::size_type pos1 = 0, pos2 = s.find(c);
while (pos2 != string::npos){
res.push_back(s.substr(pos1, pos2 - pos1));
pos1 = pos2 + c.length();
pos2 = s.find(c, pos1);
}
if (pos1 < s.length())
res.push_back(s.substr(pos1, pos2 - pos1));
}
string complexNumberMultiply(string a, string b) {
a = a.substr(0, a.length() - 1);
b = b.substr(0, b.length() - 1);
vector<string> as, bs;
split(a, as, "+");
split(b, bs, "+");
int x, y;
x = stoi(as[0]) * stoi(bs[0]) - stoi(as[1]) * stoi(bs[1]);
y = stoi(as[0]) * stoi(bs[1]) + stoi(as[1]) * stoi(bs[0]);
return to_string(x) + "+" + to_string(y) + "i";
}
};