Función de swap sin variable aux
3May10Este es el típico problema que te ponen a veces para probar tu habilidad como programador.
Tienes que hacer una función para cambiar los valores de dos variables sin usar una variable auxiliar.
La función que a todos se nos ocurre és:
function swap($a, $b) { $tmp = $a; $a = $b; $b = $tmp; }
Pero esta no cumple el enunciado. Una posible función que si cumple el enunciado es la siguiente:
function swap($a, $b) { $a = $a + $b; $b = $a - $b; $a = $a - $b; }
Edición 05/07/2010:
Juan Antonio Galán, mediante los comentarios me hace llegar esta solución:
function swap($a, $b) { list($a, $b) = array($b, $a); }
Y Víctor me comenta esta otra:
function swap($a, $b) { $a ^= $b ^= $a ^= $b; }
Muchas gracias por vuestra aportación ;) !
There are 2 comments in this article: