計算コードKata#11複素数


💁 もんだいぶんせき
2つの入力は、文字列形式で1つの複素数(複素数)を与えます.複素数はa+bi形式の実数と虚数である.
受け取った2つの数にinputを乗じて返してください.返される表現も複数形の文字列でなければなりません.
複数定義により、(i^2)は-1なので(i^2)の場合は-1で計算してください.
(二乗表示がないので、iの2二乗は(i^2)となります.)

例1:
Input: "1+1i", "1+1i"
Output: "0+2i"
Input: "1+1i", "1+1i"
Output: "0+2i"
説明:
(1 + i) (1 + i) = 1 + i + i + i^2 = 2i
(1 + i) (1 + i) = 1 + i + i + i^2 = 2i
2 iを複数形にすると0+2 i
例2:
Input: "1+-1i", "1+-1i"
Output: "0+-2i"
copied!
Input: "1+-1i", "1+-1i"
Output: "0+-2i"
説明:
(1 - i) (1 - i) = 1 - i - i + i^2 = -2i,
(1 - i) (1 - i) = 1 - i - i + i^2 = -2i,
-2 iを複数形にすると0+-2 iになります.
例3:
Input: "1+3i", "1+-2i"
Output: "7+1i"
Input: "1+3i", "1+-2i"
Output: "7+1i"
説明:
(1 + 3i) (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6,
(1 + 3i) (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6,
7+iを複数形にすると7+1 i
最初は複数の概念に惹かれて、どのように近づくべきか分かりませんでしたが、その後グーグルを游び始めました.ここでは重要ではなく、演算に集中していることに気づきました.
🙈 マイコード
const complexNumberMultiply = (a, b) => {
  // 여기에 코드를 작성해주세요.
  let arrA = a.slice(0,-1).split("+");
  let arrB = b.slice(0,-1).split("+");
  let arr = [...arrA, ...arrB]

...
まず,パラメータとしての2つの複素数の演算を容易にするために,それらを1つの配列に分ける.すべてのパラメータにiと+があるので、それらを基準にします.第一に、最後のiをsliceに減らし、+を基準にsplitに減らし、配列に数字だけを加える.次に、2つの配列を電子オペレータに統合します.
...

  let calculatedArr = []
  calculatedArr.push((arr[0]*arr[2])+(arr[1]*arr[3]*-1))
  calculatedArr.push(arr[0]*arr[3] + arr[1]*arr[2])

  let result = `${calculatedArr[0]}+${calculatedArr[1]}i`
  return result
}
そして小学校の時に習った演算に従って計算すればいいです.1番目の3番目の数に2番目の4番目の数(この場合後者はiの二乗であるため−1を乗じる)を乗じ、2番目の要素は1番目の4番目で、2番目の3番目の要素はそれぞれ乗じられる.
そしてbackticで文字列を返すと終わります!