C++ 中複數乘法
假設我們有兩個表示複數的字串,我們需要解析它們並執行復數乘法,然後將結果返回為字串。
因此,如果輸入類似於“1+-1i”和“1+-1i”,則結果將為“0+-2i”。
為解決此問題,我們將按照以下步驟執行 -
- aa := 第一個複數的實部和虛部
- bb := 第二個複數的實部和虛部
- x := aa.real * bb.real – aa.img*bb.img
- y := aa.real * bb.img + aa.img*bb.real
- 以“x+yi”返回字串
請看以下實現以更好地理解 -
示例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string complexNumberMultiply(string a, string b) {
pair <int, int> aa = parse(a);
pair <int, int> bb = parse(b);
int x = aa.first * bb.first - aa.second * bb.second;
int y = aa.first * bb.second + aa.second * bb.first;
return to_string(x) + "+" + to_string(y) + "i";
}
pair <int, int> parse(string s){
pair <int, int> ret;
int plus = find(s.begin(), s.end(), '+') - s.begin();
int i = find(s.begin(), s.end(), 'i') - s.begin();
ret.first = stoi(s.substr(0, plus));
ret.second = stoi(s.substr(plus + 1, i - plus));
return ret;
}
};
main(){
Solution ob;
cout << (ob.complexNumberMultiply("1+-1i", "1+-1i"));
}輸入
"1+-1i" "1+-1i"
輸出
0+-2i
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP