Permuter deux nombre sans utiliser temp

prince_mesfiwi -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
je ne pense pas qu'il y'a une solution pour permuter le contenu de deux cases mémoire sans utiliser une variable tmp !!!
il ne faut même pas y reflechir !! c'est impossible !
A voir également:

2 réponses

Reivax962 Messages postés 3742 Statut Membre 1 011
 
Si si, c'est possible, du moins avec des nombres :

Soit a et b deux variables. Soient na et nb les valeurs associées à ces variables au début.

Etat initial :
a == na
b == nb

a := a + b, donc a == na + nb
b := a - b, donc b == (na + nb) - nb = na
a := a - b, donc a == (na + nb) - na = nb

Etat final :
a == nb
b == na

Donc si, c'est possible ! Mais justement, il faut y réfléchir, et ne pas se dire « ça sert à rien d'y réfléchir c'est impossible » ;)
1
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

oui c'est possible
voici comment on peux faire en Perl
($x,$y) = ($y,$x);
voir aussi dans la faq permuter deux variables sans utilisation d une variable temp
mais cette version est limitée (attention au depassement de capacité)

0