0068 - Cifra Maxima

De la Universitas MediaWiki

Sursa: [1]

Cerinţa

Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.

Date de intrare

Programul va citi de la tastatură un număr natural.

Date de ieşire

Programul va afişa pe ecran cea mai mare cifră a numărului citit.

Restricții și precizări

  • numărul citit va fi mai mic decât 2.000.000.000

Exemplu

Intrare
2705
Ieșire
7

Rezolvare

Rezolvare ver. 1

def citeste_numar_natural():
    """
    Citeste un numar natural de la tastatura si il returneaza.
    """
    while True:
        try:
            numar = int(input("Introduceti un numar natural: "))
            if numar >= 0:
                return numar
            else:
                print("Numarul introdus trebuie sa fie un numar natural.")
        except ValueError:
            print("Numarul introdus trebuie sa fie un numar natural.")

def determina_cifra_maxima(numar):
    """
    Determina cifra maxima dintr-un numar.
    """
    cifra_maxima = 0
    for cifra in str(numar):
        cifra_int = int(cifra)
        if cifra_int > cifra_maxima:
            cifra_maxima = cifra_int
    return cifra_maxima

if __name__ == '__main__':
    # Apelam functiile pentru a rula programul
    numar = citeste_numar_natural()
    cifra_maxima = determina_cifra_maxima(numar)

    # Afisam rezultatul
    print("Datele sunt introduse corect.")
    print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.")

Rezolvare ver. 2

# Citim un număr natural de la tastatură și verificăm că este format doar din cifre
numar = int(input("Introduceți un număr natural: "))  # Citim numărul și îl convertim în întreg

# Validăm că numărul introdus este un număr natural
while not isinstance(numar, int) or numar < 0:
    print("Numărul introdus trebuie să fie un număr natural.")
    numar = int(input("Introduceți un număr natural: "))

cifra_maxima = 0  # Inițializăm cifra maximă cu 0

# Parcurgem cifrele numărului folosind o buclă for
for cifra in str(numar):  # Convertim numărul în șir de caractere și parcurgem cifrele
    cifra_int = int(cifra)  # Convertim cifra la întreg pentru a o putea compara cu cifra_maxima
    if cifra_int > cifra_maxima:  # Verificăm dacă cifra curentă este mai mare decât cifra maximă găsită până acum
        cifra_maxima = cifra_int  # Dacă da, actualizăm cifra maximă

# Afișăm cifra maximă găsită
print("Datele sunt introduse corect.")
print(f"Cea mai mare cifră a numărului {numar} este {cifra_maxima}.")