Permuter deux nombre sans utiliser temp

Fermé
prince_mesfiwi - 29 oct. 2007 à 15:43
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 29 oct. 2007 à 16:16
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 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
29 oct. 2007 à 16:09
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
29 oct. 2007 à 16:16
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