PUBLIC INDEX legacy zcourts.com ZCOURTS - VOL. 02
LONDON - 2026
Algorithm to swap the values of two variables without using a temporary variable
In a recent interview, I was asked whether or not it would be possible to swap the contents of two variables without using a temporary variable of any sort.
Static article
Imported body
Legacy aliases
Article archive
FIG. 02
notes
surface
research
surface
Article
app model
publish
surface
Imported writing rendered as native Fission Markdown content.
SECTION
Source and context.
The static release keeps the original post body locally while the backend content pipeline is still being built.
legacy
archive
algorithm
java
programming
Published 2011-02-16 on legacy zcourts.com. Estimated reading time: 2 min.
Original routes are preserved as local aliases so older links keep resolving to this static archive.
In a recent interview, I was asked whether or not it would be possible to swap the contents of two variables without using a temporary variable of any sort.
The scenario, given two variables X,Y where X=5 and Y=3; Swap the contents of the variables such that, outputting X produces the value 3 and outputting Y produces the value 5. Your algorithm must only use the two variables X and Y and you're allowed to perform any Mathematical operation on them to achieve the desired results.
What I came up with worked...sort of (that was on the fly without much time/thought). After thinking about the algorithm I came up with below achieves this using only the two variables by using addition and subtraction. (The below solution is an extension of what my original answer was).
The Java program (works in any language,easily translated)

/**
 *
 * @author Courtney
 */
public class Test {

    public static void main(String... args) {
        int y = 3;
        int x = 5;
        System.out.println("Original X and Y Value");
        System.out.println("Y : " + y);
        System.out.println("X : " + x);
        //add X on to Y so that we can take it off again later
        x = x + y;
        /**
         * We want to get the original X value into Y
         *we now know that sum(x)=x+y
         *therefore remove y => (x-y)
         */
        y = x - y;
        /**
         * At this point we know that the original X value is stored in Y,
         * we also know that X's value is x+y i.e. sum(x)=x+y
         * and we want X to get Y's original value so remove X's original
         * value and we're left with Y's original value
         */
        x = x - y;
        System.out.println("Swaped X and Y Value");
        System.out.println("Y : " + y);
        System.out.println("X : " + x);
    }
}

The output from the program should be:
Original X and Y Value
Y : 3
X : 5
Swaped X and Y Value
Y : 5
X : 3
Never thought about doing this before so I was caught completely off guard when asked...didn't even know it was possible until I was asked... Hope it helps
CR
Courtney Robinson
zcourts.com
Building the infrastructure for the agentic future.
LET'S CONNECT
courtney@crlog.info
Based in London
© 2025 Courtney Robinson. All rights reserved.