Swapping four variables without temporary variable
Last Updated :
11 Jul, 2025
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
// 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 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
<?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
?>
JavaScript
<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>
OutputValues before swapping are :
a = 1
b = 2
c = 3
d = 4
values after swapping are :
a = 2
b = 3
c = 4
d = 1
Time complexity: O(1) because it is doing constant operations
Auxiliary space: O(1)
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem