Dados dos números complejos en forma de strings. Nuestra tarea es imprimir la multiplicación de estos dos números complejos.
Ejemplos:
Input : str1 = "1+1i" str2 = "1+1i" Output : "0+2i" Here, (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i or "0+2i" Input : str1 = "1+-1i" str2 = "1+-1i" Output : "0+-2i" Here, (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i or "0+-2i"
La multiplicación de dos números complejos se puede hacer como:
Simplemente dividimos las partes real e imaginaria de las strings complejas dadas en función de los símbolos ‘+’ y ‘i’ . Almacenamos las partes reales de las dos strings a y b como x[0] e y[0] respectivamente y las partes imaginarias como x[1] e y[1] respectivamente. Luego, multiplicamos las partes reales e imaginarias según sea necesario después de convertir las partes extraídas en números enteros. Luego, volvemos a formar la string de retorno en el formato requerido y devolvemos el resultado.
C++
// C++ Implementation of the above approach #include <bits/stdc++.h> using namespace std; string complexNumberMultiply(string a, string b) { int i; string x1; int temp = 1; // Traverse both strings, and // check for negative numbers for (i = 0; i < a.length(); i++) { if (a[i] == '+') break; if (a[i] == '-') { temp = -1; continue; } x1.push_back(a[i]); } // String to int int t1 = stoi(x1) * temp; x1.clear(); temp = 1; for (; i < a.length() - 1; i++) { if (a[i] == '-') { temp = -1; continue; } x1.push_back(a[i]); } int t2 = stoi(x1) * temp; x1.clear(); temp = 1; for (i = 0; i < b.length(); i++) { if (b[i] == '+') break; if (b[i] == '-') { temp = -1; continue; } x1.push_back(b[i]); } int t3 = stoi(x1) * temp; x1.clear(); temp = 1; for (; i < b.length() - 1; i++) { if (b[i] == '-') { temp = -1; continue; } x1.push_back(b[i]); } int t4 = stoi(x1) * temp; // Real Part int ans = t1 * t3 - t2 * t4; string s; s += to_string(ans); s += '+'; // Imaginary part ans = t1 * t4 + t2 * t3; s += to_string(ans); s += 'i'; // Return the result return s; } // Driver Code int main() { string str1 = "1+1i"; string str2 = "1+1i"; cout << complexNumberMultiply(str1, str2); return 0; // Contributed By Bhavneet Singh }
Java
// Java program to multiply two complex numbers // given as strings. import java.util.*; import java.lang.*; public class GfG{ public static String complexNumberMultiply(String a, String b) { // Spiting the real and imaginary parts // of the given complex strings based on '+' // and 'i' symbols. String x[] = a.split("\\+|i"); String y[] = b.split("\\+|i"); // Storing the real part of complex string a int a_real = Integer.parseInt(x[0]); // Storing the imaginary part of complex string a int a_img = Integer.parseInt(x[1]); // Storing the real part of complex string b int b_real = Integer.parseInt(y[0]); // Storing the imaginary part of complex string b int b_img = Integer.parseInt(y[1]); // Returns the product. return (a_real * b_real - a_img * b_img) + "+" + (a_real * b_img + a_img * b_real) + "i"; } // Driver function public static void main(String argc[]){ String str1 = "1+1i"; String str2 = "1+1i"; System.out.println(complexNumberMultiply(str1, str2)); } }
Python3
# Python 3 program to multiply two complex numbers # given as strings. def complexNumberMultiply(a, b): # Spiting the real and imaginary parts # of the given complex strings based on '+' # and 'i' symbols. x = a.split('+') x[1] = x[1][:-1] # for removing 'i' y = b.split("+") y[1] = y[1][:-1] # for removing 'i' # Storing the real part of complex string a a_real = int(x[0]) # Storing the imaginary part of complex string a a_img = int(x[1]) # Storing the real part of complex string b b_real = int(y[0]) # Storing the imaginary part of complex string b b_img = int(y[1]) return str(a_real * b_real - a_img * b_img) \ + "+" + str(a_real * b_img + a_img * b_real) + "i"; # Driver function str1 = "1 + 1i" str2 = "1 + 1i" print(complexNumberMultiply(str1, str2)) # This code is contributed by ANKITKUMAR34
C#
// C# program to multiply two complex // numbers given as strings. using System; using System.Text.RegularExpressions; class GfG{ public static String complexNumberMultiply(String a, String b) { // Spiting the real and imaginary parts // of the given complex strings based on '+' // and 'i' symbols. String []x = Regex.Split(a, @"\+|i"); String []y = Regex.Split(b, @"\+|i"); // Storing the real part of complex string a int a_real = Int32.Parse(x[0]); // Storing the imaginary part of complex string a int a_img = Int32.Parse(x[1]); // Storing the real part of complex string b int b_real = Int32.Parse(y[0]); // Storing the imaginary part of complex string b int b_img = Int32.Parse(y[1]); // Returns the product. return(a_real * b_real - a_img * b_img) + "+" + (a_real * b_img + a_img * b_real) + "i"; } // Driver code public static void Main(String []argc) { String str1 = "1+1i"; String str2 = "1+1i"; Console.WriteLine(complexNumberMultiply(str1, str2)); } } // This code is contributed by shikhasingrajput
PHP
<?php // PHP program to multiply // two complex numbers // given as strings. function complexNumberMultiply($a, $b) { // Spiting the real and // imaginary parts of the // given complex strings // based on '+' and 'i' symbols. $x = preg_split("/[\s+]+|i/" , $a); $y = preg_split("/[\s+]+|i/" , $b); // Storing the real part // of complex string a $a_real = intval($x[0]); // Storing the imaginary // part of complex string a $a_img = intval($x[1]); // Storing the real part // of complex string b $b_real = intval($y[0]); // Storing the imaginary // part of complex string b $b_img = intval($y[1]); // Returns the product. return ($a_real * $b_real - $a_img * $b_img) . "+" . ($a_real * $b_img + $a_img * $b_real) . "i"; } // Driver Code $str1 = "1+1i"; $str2 = "1+1i"; echo complexNumberMultiply($str1, $str2); // This code is contributed by mits ?>
Javascript
<script> // javascript program to multiply two complex numbers // given as strings. function complexNumberMultiply(a, b) { // Spiting the real and imaginary parts // of the given complex strings based on '+' // and 'i' symbols. var x = a.split('+'); var y = b.split('+'); // Storing the real part of complex string a var a_real = parseInt(x[0]); // Storing the imaginary part of complex string a var a_img = parseInt(x[1]); // Storing the real part of complex string b var b_real = parseInt(y[0]); // Storing the imaginary part of complex string b var b_img = parseInt(y[1]); // Returns the product. return (a_real * b_real - a_img * b_img) + "+" + (a_real * b_img + a_img * b_real) + "i"; } // Driver function var str1 = "1+1i"; var str2 = "1+1i"; document.write(complexNumberMultiply(str1, str2)); // This code contributed by shikhasingrajput </script>
Producción:
0+2i
Publicación traducida automáticamente
Artículo escrito por Sagar Shukla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA