4317 - Cifre 19

De la Universitas MediaWiki

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.")