2910 - Bit Swap

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerință

Se dau numerele n și m. Interschimbați valorile lui n și m fără a folosi o variabilă auxiliară.

Date de intrare

Programul citește de la tastatură numerele naturale n și m, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran numerele n și m în această ordine după interschimbare. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ⩽ nm ⩽ 10000

Exemplul 1

Intrare
5 7
Ieșire
Datele introduse corespund restricțiilor impuse.
7 5

Exemplul 2

Intrare
2 3
Ieșire
Datele introduse corespund restricțiilor impuse.
3 2

Rezolvare ver. 1

def validare(n, m):
    return n.isdigit() and m.isdigit() and 1 <= int(n) and int(m) <= 10000


def inv(n, m):
    # Interesectam valorile lui n si m folosind operatorul XOR
    n = n ^ m
    m = n ^ m
    n = n ^ m

    # Afisam valorile actualizate ale lui n si m
    print("Valoarea lui n dupa interschimbare:", n)
    print("Valoarea lui m dupa interschimbare:", m)


if __name__ == "__main__":
    n = input("Introduceti valoarea lui n: ")
    m = input("Introduceti valoarea lui m: ")
    if validare(n, m):
        n = int(n)
        m = int(m)
        print("Datele introduse corespund restricțiilor impuse.")
        inv(n, m)

    else:
        print("Datele introduse nu corespund restricțiilor impuse.")