4317 - Cifre 19

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.

Sursă: [1]

Cerinţa

Să se scrie un program care citește un număr natural n cu cifrele distincte și schimbă între ele cea mai mare și cea mai mică cifră a lui n.

Date de intrare

Programul va citi de la tastatură numărul n.

Date de ieşire

Dacă datele introduse sunt corecte, se va afișa pe ecran mesajul: "Datele sunt introduse corect.", apoi programul va afişa valoarea lui n, după transformarea cerută. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."'.

Restricții și precizări

  • 10 ⩽ n ⩽ 1.000.000.000
  • cifrele lui n sunt distincte

Exemplu

Intrare
31526
Ieșire
Datele sunt introduse corect.
36521

Rezolvare

#4317


# Definim o funcție care verifică dacă un număr are cifrele distincte
def verificare_numar(numar):
    cifre = set(str(numar))  # transformăm numărul într-un set pentru a elimina cifrele duplicate
    if len(cifre) != len(str(numar)):  # verificăm dacă numărul are cifre distincte
        return False
    return True

# Definim o funcție care realizează transformarea cerută
def transformare_numar(numar):
    # găsim pozițiile cifrei maxime și a celei minime în numărul dat
    poz_cifra_max = str(numar).index(max(str(numar)))
    poz_cifra_min = str(numar).index(min(str(numar)))
    
    # transformăm numărul într-o listă pentru a putea schimba cifrele
    numar_lista = list(str(numar))
    # schimbăm cifrele la pozițiile respective
    numar_lista[poz_cifra_max], numar_lista[poz_cifra_min] = numar_lista[poz_cifra_min], numar_lista[poz_cifra_max]
    # transformăm lista înapoi în număr
    numar_nou = int("".join(numar_lista))
    return numar_nou

# Funcția main este punctul de intrare în program
if __name__ == '__main__':
    numar = int(input("Introduceți numărul cu cifre distincte: "))
    if verificare_numar(numar):
        print("Datele sunt introduse corect.")
        numar_transformare = transformare_numar(numar)
        print("Numărul după transformare este:", numar_transformare)
    else:
        print("Datele nu corespund restricțiilor impuse.")