In this article, we will discuss one of the famous interview question on how to swap two numbers without using third/temporary variable
Actually, there are number of tricks used by programmer to achieve swap program but we will limit for the following cases,
Swapping 2 numbers :
- Using addition–subtraction method
- Using division–multiplication method
- Using third variable – this is actually to understand
1. Using addition-subtraction method :
Swap2NumbersUsingAddSubMethod.java
package in.bench.resources.swap.numbers;
public class Swap2NumbersUsingAddSubMethod {
public static void main(String[] args) {
int firstNum = 500;
int secondNum = 700;
// original values before swap
System.out.println("Before swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
// swapping 2 numbers using Addition & Subtraction
firstNum = firstNum + secondNum; // 1n=1200, 2n=700
secondNum = firstNum - secondNum; // 1n=1200, 2n=500
firstNum = firstNum - secondNum; // 1n=700, 2n=500
// original values before swap
System.out.println("\nAfter swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
}
}
Output:
Before swap of 2 numbers :
First Number : 500
Second Number : 700
After swap of 2 numbers :
First Number : 700
Second Number : 500
2. Using division-multiplication method :
Swap2NumbersUsingDivMulMethod.java
package in.bench.resources.swap.numbers;
public class Swap2NumbersUsingDivMulMethod {
public static void main(String[] args) {
int firstNum = 10;
int secondNum = 15;
// original values before swap
System.out.println("Before swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
// swapping 2 numbers using Multiplication and Division
firstNum = firstNum * secondNum; // 1n=150, 2n=15
secondNum = firstNum / secondNum; // 1n=150, 2n=10
firstNum = firstNum / secondNum; // 1n=15, 2n=10
// original values before swap
System.out.println("\nAfter swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
}
}
Output:
Before swap of 2 numbers :
First Number : 10
Second Number : 15
After swap of 2 numbers :
First Number : 15
Second Number : 10
3. Using third/temporary variable :
Swap2NumbersUsingThirdVariable.java
package in.bench.resources.swap.numbers;
public class Swap2NumbersUsingThirdVariable {
public static void main(String[] args) {
int firstNum = 33;
int secondNum = 66;
int iTempVar;
// original values before swap
System.out.println("Before swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
// swapping 2 numbers using third/temporary variable
iTempVar = firstNum; // 1n=33, 2n=66, tn=33
firstNum = secondNum; // 1n=66, 2n=66, tn=33
secondNum = iTempVar; // 1n=66, 2n=33, tn=33
// original values before swap
System.out.println("\nAfter swap of 2 numbers :");
System.out.println("First Number : " + firstNum);
System.out.println("Second Number : " + secondNum);
}
}
Output:
Before swap of 2 numbers :
First Number : 33
Second Number : 66
After swap of 2 numbers :
First Number : 66
Second Number : 33
Hope, you found this article very helpful. If you have any suggestion or want to contribute any other way or tricky situation you faced during Interview hours, then share with us. We will include that code here.
Related Articles :
- Java – To print first N natural numbers
- Java – Swapping two numbers without temporary variable
- Java – Swapping two numbers using third or temporary variable
- Java – Check whether the given number is Armstrong number or Not ?
- Java – Check whether number is Positive or Negative or Zero ?
- Java – Check whether number is Even or Odd ?
- Java – How to Reverse a Number in different ways ?
- Java – Check whether number is Prime or Not ?
- Java – Print Prime numbers between specified range or interval
- Java – How to find/remove first and last digit of a number ?
- Java – How to generate Fibonacci numbers using Stream ?
- Java – How to convert Roman letter/numbers to Integer ?
- Java – How to convert Celsius to Fahrenheit and vice-versa ?
Happy Coding !!
Happy Learning !!