Code Kata - 10
今日のコードディレクトリがうまく方法をまとめることができれば、実現には大きな困難はありません.
しかし、コンピューターのような事故で問題に近づき、解決するのは容易ではない.
2つの入力は、文字列形式で1つの複素数(複素数)を与えます.複素数はa+bi形式の実数と虚数である.受け取った2つの数にinputを乗じて返してください.
返される表現も複数形の文字列でなければなりません.
複数定義により、(i^2)は-1なので(i^2)の場合は-1で計算してください.
(二乗表示がないので、iの2二乗は(i^2)となります.)
最初は
そのため、よく考えてみると、以下の解決策が可能だと思います.は、まず文字列から 以降、"+"を基準として、文字列 パラメータaおよびbから抽出された2文字列の値は、位置に乗じて加算される. 最後に 上記の方法が可能であるのは,最終的な結果値が複素形式(a+bi)であるためである.
(数字に乗じる)および(
上記のように実現されるコードは以下の通りである.
文字と数字、stringとnumberは実生活で区別しやすいが、本当にコンピューターの世界に来たら、また違った存在だと改めて感じる.各要素のタイプを覚え、問題に近づくことは、計算思考の一歩です.
しかし、コンピューターのような事故で問題に近づき、解決するのは容易ではない.
? Question
2つの入力は、文字列形式で1つの複素数(複素数)を与えます.複素数はa+bi形式の実数と虚数である.受け取った2つの数にinputを乗じて返してください.
返される表現も複数形の文字列でなければなりません.
複数定義により、(i^2)は-1なので(i^2)の場合は-1で計算してください.
(二乗表示がないので、iの2二乗は(i^2)となります.)
Input: "1+1i", "1+1i"
Output: "0+2i"
Input: "1+-1i", "1+-1i"
Output: "0+-2i
Input: "1+3i", "1+-2i"
Output: "7+1i"
! Answer
最初は
split()
メソッドを用いて,「+」を基準として入力を[1,1 i]に分割しようとした.その後、各要素に乗算された値を繰り返し文で配列に抽出しようとしました.問題は、文字i
が数値タイプではないため、演算できません.そのため、よく考えてみると、以下の解決策が可能だと思います.
i
を削除する.split()
が作成される.i
を貼り付けます.(数字に乗じる)および(
i
にi
を乗じる)は、aの位置(数字にi
を乗じる)がbに到達しなければならない位置であるからである.上記のように実現されるコードは以下の通りである.
const complexNumberMultiply = (a, b) => {
const numA = a.substring(0, a.length-1).split('+');
const numB = b.substring(0, b.length-1).split('+');
return `${numA[0]*numB[0]+(numA[1]*numB[1]*-1)}+${numA[0]*numB[1]+numA[1]*numB[0]}i`;
}
aとbを格納するために新しい変数を宣言し、それぞれ追加して結果を返すことができますが、backtic(`)を使用しました.backticはstring内部で変数を使用できるためです.文字と数字、stringとnumberは実生活で区別しやすいが、本当にコンピューターの世界に来たら、また違った存在だと改めて感じる.各要素のタイプを覚え、問題に近づくことは、計算思考の一歩です.
Reference
この問題について(Code Kata - 10), 我々は、より多くの情報をここで見つけました https://velog.io/@eliz/Code-Kata-10テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol