C++での複素数の乗算
複素数を表す2つの文字列があるとします。それらを解析して複素数の乗算を実行し、結果を文字列として返す必要があります。
したがって、入力が「1+-1i」や「1+-1i」のような場合、結果は「0+-2i」になります。
これを解決するには、次の手順に従います-
- aa:=最初の複素数の実数と虚数のペア
- bb:=2番目の複素数の実数と虚数のペア
- 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
-
複素数の乗算を実行するC++プログラム
複素数は、a + biとして表される数です。ここで、iは虚数、aとbは実数です。複素数の例は次のとおりです- 2+3i 5+9i 4+2i 複素数の乗算を実行するプログラムは次のとおりです- 例 #include<iostream> using namespace std; int main(){ int x1, y1, x2, y2, x3, y3; cout<<"Enter the first complex number : "<<endl; cin&g
-
C++のCHAR_BIT
CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int a = CHAR_BIT*sizeof(x); stack<bool> s; cout << "T