Két szám felcserélése ideiglenes változó használata nélkül

Legyen a = 20, b = 10. Fordítsuk meg a kettőt, de úgy, hogy nem használunk ideiglenes változót. Még egyszer az Indexben mesélte nekem valaki, hogy ezt hogyan kell, de nem volt világos a dolog, viszont ma elém került egy remek poszt Chris Taylortől, ami nem csak a legegyszerűbb összeadásos-kivonásos módszert ismerteti, de még egy sor másikat, sőt, matematikailag is levezeti a problémát.

A legegyszerűbb módszer egyébként:

a = a + b
b = a - b
a = a - b

Lássuk végrehajtva. Az első lépésben a = 20 + 10 = 30 lesz. Utána b = 30 - 10 = 20, vagyis b-be máris bekerült a eredeti értéke (hú, de forró!), a harmadik lépésben pedig a = 30 - 20 = 10, puff, helyet cserélt a kettő!

Aki nem fél az egyetemista matek pornótól, mélyebbre is vájhat.