A=3, b=5 Cseréljuk fel az értékeket. Hogy lehet ezt úgy, hogy ne legyen egy új (mongyuk c) vátozó?
Nem a poharas felcserélésre gondolok, mert ott:
c<- b-a
a<- a+c
b<- b-c
Magyarúl: egyik pohárban kóla van , másikban fanta , egy harmadik pohárba beletöltjük a fantát, ekkor a fantás pohát üres, ebbe beletöltjuk a kólát s a másik pohárból visszatöltjuk a fantát a "kólás" pohárba...
Ezt úgy kéne megoldani, hogy ne legyen harmadik pohár, matematikai műveletekkel
pl kivonni odaadni .. megszorozni... s csak a és b vel dolgozni és az adatok a végen cserélődjenek fel
Egy lehetséges megoldás:
A=3 B=5
A=A+B ekkor A=8 és B=5
B=A-B ekkor A=8 és B=3
A=A-B ekkor A=5 és B=3
a ^= b ^= a ^= b;
azaz:
a = a ^ b;
b = b ^ a;
a = a ^ b;
ahol a '^' jel a logikai kizáró vagy (xor) műveletet jelöli.
Pedro
Informatika? :D
Nekem ez a házim informatikából, nekem sikerült megoldani, kétféleképpen is. :)
I. a = 3
b = 5
a <- (a + b) - a
Tehát: (3 + 5) - 3 = 8 - 3 = 5 => a = 5
b <- (a * 3) / 5
Tehát (az a mostmár = 5): (5 * 3) / 5 = 15/5 = 3
II. a = 3
b = 5
a <- (b * 3) / 3
Tehát: (5 * 3) / 3 = 15/3 = 5
b <- (a * 3) / 5
Tehát: (5 * 3) / 5 = 15/5 = 3
Remélem segítettem!
Informatika? A leggyorsabb a poharas csere, gyakorlatban azt használd, de feladatnak ez nagyon jó... :)
Az előzőek közül a xor-ost ajánlanám én is. Annak a gyakorlatban is haszna lehet. (xor-ral működnek például a RAID-et használó winchester tömbök is)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!