Intercambiar dos números sin variable temporal

C++Beginner
Practicar Ahora

Introducción

Intercambiar dos números significa que sus valores deben intercambiarse, es decir, el valor inicial del primer número ahora debe ser lo que era el segundo número, y viceversa. En este laboratorio, aprenderemos dos maneras de intercambiar dos números sin utilizar una tercera variable:

Crea un nuevo archivo de C++

Abre tu terminal y navega hasta el directorio del proyecto con el comando:

cd ~/proyecto

Crea un nuevo archivo de C++ llamado swap.cpp usando el comando:

touch swap.cpp

Abre swap.cpp en tu editor de código preferido.

Escribe el código para intercambiar dos números usando los operadores + y -

En este paso, escribiremos el código para intercambiar dos números usando los operadores + y -. El código debe tomar dos números del usuario y intercambiarlos sin usar una tercera variable.

// swap.cpp
#include <iostream>
using namespace std;

void swap_numbers(int &x, int &y) {
    x = x + y;
    y = x - y;
    x = x - y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Después de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

En este código, hemos creado una función swap_numbers que toma dos argumentos enteros y realiza la operación de intercambio. Tomamos dos números a y b del usuario y llamamos a la función swap_numbers que intercambia sus valores. Finalmente, imprimimos los valores intercambiados de a y b.

Para ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

Escribe el código para intercambiar dos números usando los operadores * y /

En este paso, escribiremos el código para intercambiar dos números usando los operadores * y /. El código debe tomar dos números del usuario y intercambiarlos sin usar una tercera variable.

// swap.cpp
#include <iostream>
using namespace std;

void swap_numbers(int &x, int &y) {
    x = x * y;
    y = x / y;
    x = x / y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Después de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
 }

En este código también, hemos creado una función swap_numbers que toma dos argumentos enteros y realiza la operación de intercambio. Tomamos dos números a y b del usuario y llamamos a la función swap_numbers que intercambia sus valores. Finalmente, imprimimos los valores intercambiados de a y b. En este método de intercambio, usamos operaciones de multiplicación y división en lugar de suma y resta.

Para ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

Programa final

Aquí está el código completo del programa swap.cpp que intercambia dos números tanto por el método de suma-resta como por el de multiplicación-division.

// swap.cpp
#include <iostream>
using namespace std;

void add_subtract_swap(int &x, int &y) {
    x = x + y;
    y = x - y;
    x = x - y;
}

void multiply_divide_swap(int &x, int &y) {
    x = x * y;
    y = x / y;
    x = x / y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    add_subtract_swap(a, b);

    cout << "Después de intercambiar usando los operadores + y -: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    multiply_divide_swap(a, b);

    cout << "Después de intercambiar usando los operadores * y /: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Compilar y ejecutar

Para compilar y ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

El programa pedirá al usuario dos números, los cuales intercambiará tanto de manera sumando-restando como multiplicando-dividiendo. La salida mostrará los valores iniciales de a y b, los valores intercambiados usando sumando-restando y los valores intercambiados usando multiplicando-dividiendo.

Resumen

El intercambio es una operación importante en la programación y a menudo es requerida en muchos algoritmos. En este laboratorio, aprendimos dos maneras de intercambiar dos números sin usar una tercera variable: usando sumas y restas, y usando multiplicaciones y divisiones. También aprendimos cómo crear funciones para realizar la operación de intercambio, lo que hace que nuestro código sea más modular y más fácil de leer.