Święta za pasem, już wkrótce usiądziesz ze swoją rodziną przy wigilijnym stole. Po kolacji nadejdzie długo wyczekiwany czas wypatrywania pierwszej gwiazdki, której pojawienie się oznaczać będzie, że już za chwilę zawita św. Mikołaj! A św. Mikołaj to prezenty, ale też… kłopotliwe pytania.
Taki przystojny kawaler-programista! Tylko te gry i komputery… Czy byłeś grzeczny w tym roku?
Chwila zastanowienia…
To nie wchodziło w scope tego sprintu, ale jest w backlogu. W zamian mogę św. Mikołajowi pokazać, jak zamienić dwie liczby wartościami, bez użycia trzeciej, pomocniczej! Czy św. Mikołaj reflektuje?
No i tutaj już wiadomo, co będzie. Każdy by chciał wiedzieć!
Ja znam trzy sposoby, ale może jest ich więcej (jeśli znasz inny, to koniecznie podziel się nim w komentarzu!):
-
x = (y = (x = x ^ y) ^ y) ^ x;
-
x = - (y = (x = x + y) - y) + x;
-
x = (int)(1.0 / (y = (x = x * y) / y) * x);
Każdy z tych sposobów ma swoje słabe strony i ograniczenia (pozostawiam jako ćwiczenie na nudę w oczekiwaniu na pierwszą gwiazdkę). Jednak pewna wada jest wspólna dla nich wszystkich – gdy użyjesz takiej konstrukcji w projekcie, koledzy najpierw mocno się zamyślą, a potem nie pozwolą Ci dożyć kolejnych Świąt!
Wszystkiego najlepszego!