Swapping four variables without temporary variable
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> |
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
Time complexity: O(1) because it is doing constant operations
Auxiliary space: O(1)
Please Login to comment...