牛客 ---- 复数乘法

 题目链接 

        

                        

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;
}

                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值