ধরুন আমাদের দুটি স্ট্রিং আছে যা জটিল সংখ্যাকে প্রতিনিধিত্ব করে, আমাদের সেগুলি পার্স করতে হবে এবং জটিল সংখ্যা গুণফল সম্পাদন করতে হবে, তারপর ফলাফল স্ট্রিং হিসেবে ফেরত দিতে হবে।
তাই যদি ইনপুট হয় “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