Swapping four variables without temporary variable - GeeksforGeeks

05 May, 2021
Suppose we have four variables a, b, c, d and we want to perform swapping of these variables in the following manner a = b, b = c, c = d, d = a without using any other fifth or temporary variable 
Solution : Step 1. Swap a and b without using any other variable a = a + b b = a – b a = a – b
Step 2. Swap b and c without using any other variable b = b + c c = b – c b = b – c 
Step 3. Swap c and d without using any other variable c = c + d d = c – d c = c – d 
Examples: 
Input : a = 1, b = 2, c = 3, d = 4
Output :After swapping 
        a = 2, b = 3, c = 4, d = 1

Input :a = 6, b = 9, c = 10, d = 50
Output : After swapping : a = 9, b = 10, c = 50, d = 6
Prerequisite: Swapping two variables without temporary variable, Swapping three variables without temporary variable 
CPP
Java
Python3
C#
PHP
Javascript
// CPP program to swap 4 variables without// using temporary variable.#include <bits/stdc++.h>using namespace std; void swap(int a, int b, int c, int d){    // swapping a and b variables    a = a + b;    b = a - b;    a = a - b;     // swapping b and c variables    b = b + c;    c = b - c;    b = b - c;     // swapping c and d variables    c = c + d;    d = c - d;    c = c - d;     cout << "values after swapping are : " << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    cout << "c = " << c << endl;    cout << "d = " << d << endl;} // Driver codeint main(){    // initialising variables    int a = 1;    int b = 2;    int c = 3;    int d = 4;     cout << "Values before swapping are :" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    cout << "c = " << c << endl;    cout << "d = " << d << endl << endl;     // Function call    swap(a, b, c, d);     return 0;}
// Java program to swap 4 variables// without using temporary variable.class GFG {     static void swap(int a, int b, int c, int d)    {         // swapping a and b variables        a = a + b;        b = a - b;        a = a - b;         // swapping b and c variables        b = b + c;        c = b - c;        b = b - c;         // swapping c and d variables        c = c + d;        d = c - d;        c = c - d;         System.out.println("values after "                           + "swapping are : ");        System.out.println("a = " + a);        System.out.println("b = " + b);        System.out.println("c = " + c);        System.out.println("d = " + d);    }     // Driver code    public static void main(String[] args)    {         // initialising variables        int a = 1;        int b = 2;        int c = 3;        int d = 4;         System.out.println("values before "                           + "swapping are : ");        System.out.println("a = " + a);        System.out.println("b = " + b);        System.out.println("c = " + c);        System.out.println("d = " + d);        System.out.println("");               // Function call        swap(a, b, c, d);    }} // This code is contributed by Smitha.
# Python 3 program to swap 4 variables# without using temporary variable.  def swap(a, b, c, d):     # swapping a and b variables    a = a + b    b = a - b    a = a - b     # swapping b and c variables    b = b + c    c = b - c    b = b - c     # swapping c and d variables    c = c + d    d = c - d    c = c - d     print("values after swapping are : ")    print("a = ", a)    print("b = ", b)    print("c = ", c)    print("d = ", d)  # Driver code # initialising variablesa = 1b = 2c = 3d = 4 print("values before swapping are : ")print("a = ", a)print("b = ", b)print("c = ", c)print("d = ", d)print("") # Function callswap(a, b, c, d) # This code is contributed by Smitha.
// C# program to swap 4 variables// without using temporary variable.using System; class GFG {     static void swap(int a, int b, int c, int d)    {        // swapping a and b variables        a = a + b;        b = a - b;        a = a - b;         // swapping b and c variables        b = b + c;        c = b - c;        b = b - c;         // swapping c and d variables        c = c + d;        d = c - d;        c = c - d;         Console.WriteLine("values after "                          + "swapping are : ");        Console.WriteLine("a = " + a);        Console.WriteLine("b = " + b);        Console.WriteLine("c = " + c);        Console.WriteLine("d = " + d);    }     // Driver Code    public static void Main()    {         // initialising variables        int a = 1;        int b = 2;        int c = 3;        int d = 4;         Console.WriteLine("values before "                          + "swapping are : ");        Console.WriteLine("a = " + a);        Console.WriteLine("b = " + b);        Console.WriteLine("c = " + c);        Console.WriteLine("d = " + d);        Console.WriteLine("");               // Function call        swap(a, b, c, d);    }} // This code is contributed by Smitha.
<?php// PHP program to swap 4 variables// without using temporary variable function swap($a, $b, $c, $d){         // swapping a and b variables    $a = $a + $b;    $b = $a - $b;    $a = $a - $b;     // swapping b and c variables    $b = $b + $c;    $c = $b - $c;    $b = $b - $c;     // swapping c and d variables    $c = $c + $d;    $d = $c - $d;    $c = $c - $d;     echo "values after swapping are : ","\n";    echo "a = " , $a ,"\n";    echo "b = " , $b ,"\n";    echo "c = " ,$c ,"\n";    echo "d = " , $d ,"\n";}     // Driver Code    // initialising variables    $a = 1;    $b = 2;    $c = 3;    $d = 4;     echo "Values before swapping are :" ,"\n";    echo "a = " , $a ,"\n";    echo "b = " ,$b,"\n";    echo "c = " , $c ,"\n";    echo "d = " , $d ,"\n","\n";     // Function call    swap($a, $b, $c, $d); // This code is contributed by aj_36?>
<script>    // Javascript program to swap 4 variables    // without using temporary variable.         function swap(a, b, c, d)    {        // swapping a and b variables        a = a + b;        b = a - b;        a = a - b;          // swapping b and c variables        b = b + c;        c = b - c;        b = b - c;          // swapping c and d variables        c = c + d;        d = c - d;        c = c - d;          document.write("values after swapping are : " + "</br>");        document.write("a = " + a + "</br>");        document.write("b = " + b + "</br>");        document.write("c = " + c + "</br>");        document.write("d = " + d);    }         // initialising variables    let a = 1;    let b = 2;    let c = 3;    let d = 4;     document.write("values before swapping are : " + "</br>");    document.write("a = " + a + "</br>");    document.write("b = " + b + "</br>");    document.write("c = " + c + "</br>");    document.write("d = " + d + "</br>");    document.write("" + "</br>");     // Function call    swap(a, b, c, d); </script>
Values before swapping are :
a = 1
b = 2
c = 3
d = 4

values after swapping are : 
a = 2
b = 3
c = 4
d = 1
Smitha Dinesh Semwal
jit_t
bunnyram19
divyesh072019
programming-puzzle
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Sieve of Eratosthenes
Print all possible combinations of r elements in a given array of size n
Program for Decimal to Binary Conversion
The Knight's tour problem | Backtracking-1
Operators in C / C++
Find minimum number of coins that make a given value
Program to find sum of elements in a given array