0361 - Cifra 1

From Bitnami MediaWiki
Revision as of 19:10, 28 April 2023 by Tamas Claudia (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursă: [1]

Cerinţa[edit | edit source]

Se citește un număr natural n. Determinați cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului n.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieşire[edit | edit source]

Dacă datele introduse sunt corecte, pe ecran se va afișa "Datele introduse sunt corecte.", apoi programul afișează pe ecran numărul cerut m care se poate obține prin eliminarea unei singure cifre din scrierea numărului n. În caz contrar, se va afișa pe ecran mesajul "Datele introduse nu sunt corecte.".

Restricții și precizări[edit | edit source]

  • 1 ⩽ n ⩽ 1.000.000.000

Exemplu[edit | edit source]

Intrare
423234
Ieșire
Datele introduse sunt corecte.
Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului 423234 este: 43234

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0361

def verificare_date(n: int) -> bool:

   """Verifică dacă numărul n se află în intervalul [1, 1000000000]."""
   return 1 <= n <= 1000000000

def cel_mai_mare_numar_dupa_eliminare(n: int) -> int:

   """Determină cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului n."""
   numar_dupa_eliminare = -1 # inițializăm cu o valoare imposibilă
   for i in range(len(str(n))): # parcurgem cifrele numărului
       cifra_curenta = str(n)[i]
       numar_nou = int(str(n)[:i] + str(n)[i+1:]) # eliminăm cifra curentă
       if numar_nou > numar_dupa_eliminare:
           numar_dupa_eliminare = numar_nou # actualizăm numărul maxim
   return numar_dupa_eliminare

if __name__ == "__main__":

   """Funcția principală."""
   n = int(input("Introduceți un număr natural: "))
   if verificare_date(n):
       print("Datele introduse sunt corecte.")
       print("Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului", n, "este:", cel_mai_mare_numar_dupa_eliminare(n))
   else:
       print("Datele introduse nu sunt corecte.")


</syntaxhighlight>