题目链接
1.基本思路
- ①将获取的复数字符串拆分成两个整数(利用string自带的find,substr函数)
- ②遵循复数相乘规则进行计算
- ③将计算的结果补充字符进行展示
2.代码
#include<iostream>
#include<string>
using namespace std;
void CutString2Int(const string& str, int* arr)
{
string sub1_out; //存储切分出来的数字字符
string sub2_out;
size_t pos = str.find('+');
if (pos != string::npos) {
sub1_out = str.substr(0, pos);
sub2_out = str.substr(pos + 1, str.size() - pos - 2); //不要 i
}
arr[0] = stoi(sub1_out);
if (sub2_out.empty())
{
arr[1] = 1;
}
else
{
arr[1] = stoi(sub2_out);
}
//检测切出来的是否正确
//cout << sub1_out << endl;
//cout << sub2_out << endl;
/*cout << arr[0] << " " << arr[1] << endl;*/
}
int main()
{
string str_1;
string str_2;
cin >> str_1;
cin >> str_2;
int arr_1[2] = { 0 }; //存储提取出来的数据
int arr_2[2] = { 0 };
CutString2Int(str_1, arr_1);
CutString2Int(str_2, arr_2);
int num1 = arr_1[0] * arr_2[0] - arr_1[1] * arr_2[1];
int num2 = arr_1[0] * arr_2[1] + arr_1[1] * arr_2[0];
string ret;
ret += to_string(num1);
ret += '+';
ret += to_string(num2);
ret += 'i';
cout << ret << endl;
/*
cout << to_string(num1) << "+" << to_string(num2) << "i" <<endl;
*/
return 0;
}