Dado un número complejo Z , la tarea es determinar las partes real e imaginaria de este número complejo.
Ejemplos:
Entrada: z = 3 + 4i
Salida: Parte real: 3, Parte imaginaria: 4
Entrada: z = 6 – 8i
Salida: Parte real: 6, Parte imaginaria: 8
Enfoque: Un número complejo se puede representar como Z = x + yi , donde x es parte real e y es imaginaria.
Seguiremos los pasos a continuación para separar la parte real de la imaginaria.
- Averigüe el índice del operador + o – en la string
- La parte real será una substring a partir del índice 0 hasta una longitud (índice del operador – 1)
- La parte imaginaria será una substring a partir del índice (índice del operador + 1) hasta (longitud de la string – índice del operador – 2)
Implementación:
C++
// C++ program to find the real and // imaginary parts of a Complex Number #include <bits/stdc++.h> using namespace std; // Function to find real and imaginary // parts of a complex number void findRealAndImag(string s) { // string length stored in variable l int l = s.length(); // variable for the index of the separator int i; // Storing the index of '+' if (s.find('+') < l) { i = s.find('+'); } // else storing the index of '-' else { i = s.find('-'); } // Finding the real part // of the complex number string real = s.substr(0, i); // Finding the imaginary part // of the complex number string imaginary = s.substr(i + 1, l - i - 2); cout << "Real part: " << real << "\n"; cout << "Imaginary part: " << imaginary << "\n"; } // Driver code int main() { string s = "3+4i"; findRealAndImag(s); return 0; }
Java
// Java program to find the real and // imaginary parts of a Complex Number class GFG { // Function to find real and imaginary // parts of a complex number static void findRealAndImag(String s) { // string length stored in variable l int l = s.length(); // variable for the index of the separator int i; // Storing the index of '+' if (s.indexOf('+') != -1) { i = s.indexOf('+'); } // else storing the index of '-' else { i = s.indexOf('-'); } // Finding the real part // of the complex number String real = s.substring(0, i); // Finding the imaginary part // of the complex number String imaginary = s.substring(i + 1, l - 1); System.out.println("Real part: " + real ); System.out.println("Imaginary part: "+ imaginary); } // Driver code public static void main(String []args) { String s = "3+4i"; findRealAndImag(s); } } // This code is contributed by chitranayal
Python3
# Python3 program to find the real and # imaginary parts of a Complex Number # Function to find real and imaginary # parts of a complex number def findRealAndImag(s) : # string length stored in variable l l = len(s) # variable for the index of the separator i = 0 # Storing the index of '+' if (s.find('+') != -1): i = s.find('+') # else storing the index of '-' else: i = s.find('-'); # Finding the real part # of the complex number real = s[:i] # Finding the imaginary part # of the complex number imaginary = s[i + 1:l - 1] print("Real part:", real) print("Imaginary part:", imaginary) # Driver code s = "3+4i"; findRealAndImag(s); # This code is contributed by Sanjit_Prasad
C#
// C# program to find the real and // imaginary parts of a Complex Number using System; class GFG { // Function to find real and imaginary // parts of a complex number static void findRealAndImag(String s) { // string length stored in variable l int l = s.Length; // variable for the index of the separator int i; // Storing the index of '+' if (s.IndexOf('+') != -1) { i = s.IndexOf('+'); } // else storing the index of '-' else { i = s.IndexOf('-'); } // Finding the real part // of the complex number String real = s.Substring(0, i); // Finding the imaginary part // of the complex number String imaginary = s.Substring(i + 1, l - i - 2); Console.WriteLine("Real part: " + real ); Console.WriteLine("Imaginary part: "+ imaginary); } // Driver code public static void Main(String []args) { String s = "3+4i"; findRealAndImag(s); } } // This code is contributed by 29AjayKumar
Javascript
<script> // JavaScript program to find the real and // imaginary parts of a Complex Number // Function to find real and imaginary // parts of a complex number function findRealAndImag(s) { // string length stored in variable l let l = s.length - 1; // variable for the index of the separator let i; // Storing the index of '+' if (s.indexOf('+') != -1) { i = s.indexOf('+'); } // else storing the index of '-' else { i = s.indexOf('-'); } // Finding the real part // of the complex number let real = s.substr(0, i); // Finding the imaginary part // of the complex number let imaginary = s.substr(i + 1, l - 2 ); document.write("Real part: " + real +"<br/>" ); document.write("Imaginary part: "+ imaginary); } // Driver code let s = "3+4i"; findRealAndImag(s); </script>
Producción:
Real part: 3 Imaginary part: 4
Análisis de rendimiento :
- Complejidad de tiempo : en el enfoque anterior, como estamos haciendo un número constante de operaciones independientemente de la longitud de la string, la complejidad de tiempo es O (1)
- Complejidad del espacio auxiliar : en el enfoque anterior, no estamos utilizando ningún espacio adicional aparte de algunas variables. Entonces la complejidad del espacio auxiliar es O(1)