# Introduction :

In this C++ example tutorial, we will learn how to swap two numbers without using a third variable. This question is asked in most beginner level interview and you can use the same logic for any programming language.

We can swap two numbers easily by using a third variable. Suppose, the first variable is *x* and the second variable is *y*. *x* is holding *10* and *y* is holding *20*. For swapping these numbers using a third variable *z*, first of all, set the value of *x* to this third variable *z*. Next, set the value of *y* to *x* and finally set the value of *z* to *y*.

```
Before : x = 10, y = 20
Step 1 : x = 10, y = 20, z = 10
Step 2 : x = 20, y = 20, z = 10
Step 3 : x = 20, y = 10, z = 10
```

It is really easy to do the swapping using a third variable. But how can we do the same thing without using *z* or the third variable?

## Swap using addition/subtraction or multiplication/division :

Using *addition/subtraction (+,-)* or using *multiplication/division (*,/),* we can swap two numbers. Letâ€™s check how to do that :

### Using multiplication/division :

```
Before : x = 10, y = 20
Step 1 : x = x * y
(x = 200, y = 20)
Step 2 : y = x/y
(x = 200, y = 10)
Step 3 : x = x/y
(x = 20, y = 10)
```

In this example, we have seen how to swap the numbers without using a third number using only multiplication and division. We can also do it using addition and subtraction like below :

### Using addition/subtraction :

```
Before : x = 10, y = 20
Step 1 : x = x + y
(x = 30, y = 20)
Step 2 : y = x - y
(x = 30, y = 10)
Step 3 : x = x - y
(x = 20, y = 10)
```

Same as the above. Use any of these approaches to swap two numbers.

## C++ program to swap two numbers :

```
#include <iostream>
using namespace std;
int main()
{
int x;
int y;
cout << "Enter the first number :" << endl; cin >> x;
cout << "Enter the second number :" << endl; cin >> y;
cout << "Before swap : x = " << x << ", y = " << y << endl;
//swap
x = x + y;
y = x - y;
x = x - y;
cout << "After swap : x = " << x << ", y = " << y << endl;
return 0;
}
```

In this example, we are using addition and subtraction to swap the numbers. You can also change it to use multiplication and division.

## Sample Output :

```
Enter the first number :
12
Enter the second number :
25
Before swap : x = 12, y = 25
After swap : x = 25, y = 12
```

### Conclusion :

This method has more advantage than the other method of using a third number. Using a third number requires more space. So, this process is more space efficient. Try to run the above example and drop one comment below if you have any queries.