# Swapping two Numbers without Temporary Variables

Ever wondered how to swap two numbers without using a temporary variable?

I just found this very old note that I thought is worth sharing. The trick is quite old and you might already know about this, but when I started out with programming, it blew my mind.

In school, we get taught to use a temporary variable to swap two numbers:

```
let a = 5;
let b = 10;
let temp = a;
a = b; // a = 10
b = temp; // b = 5
```

But by using some arithmetic, we can save us a few bytes of memory:

```
let a = 5;
let b = 10;
a = a + b; // a = 15 ; b = 10
b = a - b; // a = 15 ; b = 5
a = a - b; // a = 10 ; b = 5
```

Please **never** use this in any production code. The less we have to think
about a piece of code, the better it is. It's a fun thought experiment
nevertheless!

This is post 026 of #100DaysToOffload.