Related Articles
Swapping four variables without temporary variable
• Difficulty Level : Medium
• Last Updated : 22 Oct, 2020

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 varibale
b = b + c
c = b – c
b = b – c

Step 3. Swap c and d without using any other varibale
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
```

## CPP

 `// CPP program to swap 4 variables without``// using temporary variable.``#include ``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 code``int` `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

 `// 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.`

## Python3

 `# 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 variables``a ``=` `1``b ``=` `2``c ``=` `3``d ``=` `4` `print``(``"values before swapping are : "``)``print``(``"a = "``, a)``print``(``"b = "``, b)``print``(``"c = "``, c)``print``(``"d = "``, d)``print``("")` `# Function call``swap(a, b, c, d)` `# This code is contributed by Smitha.`

## C#

 `// 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

 ``
Output
```Values before swapping are :
a = 1
b = 2
c = 3
d = 4

values after swapping are :
a = 2
b = 3
c = 4
d = 1
```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up