0361 - Cifra 1: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
Line 19: Line 19:


<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#0361


def verificare_date(n: int) -> bool:
def verificare_date(n: int) -> bool:

Latest revision as of 19:10, 28 April 2023

Sursă: [1]

Cerinţa[edit]

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]

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

Date de ieşire[edit]

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]

  • 1 ⩽ n ⩽ 1.000.000.000

Exemplu[edit]

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]

<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>