मान लीजिए कि हमारे पास दो तार हैं जो जटिल संख्याओं का प्रतिनिधित्व कर रहे हैं, हमें उन्हें पार्स करना होगा और जटिल संख्या गुणा करना होगा, फिर परिणाम को एक स्ट्रिंग के रूप में वापस करना होगा।
तो अगर इनपुट “1+-1i” और “1+-1i” जैसा है, तो परिणाम “0+-2i” होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- आ :=पहली सम्मिश्र संख्या की वास्तविक और काल्पनिक जोड़ी
- 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