In programming, a common task is to swap the values of two variables. Lines 40-60 of the program below perform the swap using a temporary variable (T).
10 A=123
20 B=456
30 PRINT A,B
40 T=A
50 A=B
60 B=T
70 PRINT A,B
Rewrite the program to swap the values in A and B without using a temporary variable.
Note: The new program will not require sophisticated programming or complex math.
Since this looks like it was written in GWBASIC (aka BASICA), you could use
SWAP A,B
but that's cheating, and also internally probably uses a temporary variable.
The classic method is
A = A XOR B
B = A XOR B
A = A XOR B
This works in integers in Basic, but rerun141's answer allows floating point numbers with fractions also. In languages like C or C++, the XOR could be done on a byte-by-byte basis, avoiding loss of precision in non-integral floating-point numbers, and working with equal-sized strings as well.
|
Posted by Charlie
on 2004-01-02 17:03:48 |