C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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

  1. 複素数の乗算を実行する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

  2. 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