Encuentra la parte real e imaginaria de un número complejo

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. 
 

  1. Averigüe el índice del operador + o – en la string
  2. La parte real será una substring a partir del índice 0 hasta una longitud (índice del operador – 1)
  3. 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)

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *