0364 - Cifre 1

From Bitnami MediaWiki
Revision as of 18:15, 21 April 2023 by Petras.du.ioana (talk | contribs) (Am creat de la zero.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dau un numar de numere naturale. Determinați numărul pentru care prima cifră este maximă.

Date de intrare

Programul citește de la tastatură un număr, iar apoi acel numar de numere naturale, separate prin spaţii.

Date de ieşire

Programul afișează pe ecran numărul cerut

Restricții și precizări

  • 1 ≤ numar ≤ 1000
  • cele n numere citite vor avea cel mult 9 cifre
  • dacă există mai multe numere pentru care prima cifră este maximă, se va determina cel mai mare dintre acestea

Exemplu

Intrare
5
2467 645 687 59878 125
Ieșire
Datele introduse sunt valide.
687

Explicatie

Există două numere pentru care prima cifră este maximă. Dintre acestea, cel mai mare este 687.

Rezolvare

<syntaxhighlight lang="python" line>

while True:

   try:
       # Citim numărul de numere de la tastatură
       n = int(input("Introduceți numărul de numere: "))
       # Verificăm dacă numărul este între 1 și 1000
       if n < 1 or n > 1000:
           print("Numărul de numere trebuie să fie un număr natural între 1 și 1000.")
           continue
       # Dacă numărul este corect, ieșim din bucla while
       break
   except ValueError:
       # Dacă utilizatorul introduce o valoare care nu poate fi convertită într-un număr întreg,
       # afișăm un mesaj de eroare și reluăm citirea
       print("Introduceți un număr valid.")
  1. Inițializăm variabilele max_num și max_first_digit cu valori minime

max_num = -1 max_first_digit = -1

  1. Citim cele n numere de la tastatură și determinăm numărul cu prima cifră maximă

for i in range(n):

   while True:
       try:
           # Citim numărul i de la tastatură
           num = int(input(f"Introduceți numărul {i + 1}: "))
           # Verificăm dacă numărul are cel puțin două cifre
           if num < 10:
               print("Numărul trebuie să fie natural și să aibă cel puțin două cifre.")
               continue
           # Dacă numărul este corect, ieșim din bucla while
           break
       except ValueError:
           # Dacă utilizatorul introduce o valoare care nu poate fi convertită într-un număr întreg,
           # afișăm un mesaj de eroare și reluăm citirea
           print("Introduceți un număr valid.")
   # Determinăm prima cifră a numărului
   first_digit = int(str(num)[0])
   # Verificăm dacă prima cifră a numărului este mai mare decât oricare alta primă cifră întâlnită până acum
   if first_digit > max_first_digit:
       # Dacă da, actualizăm variabilele max_num și max_first_digit cu valorile corespunzătoare
       max_first_digit = first_digit
       max_num = num
   # Dacă prima cifră a numărului este egală cu cea mai mare primă cifră întâlnită până acum,
   # verificăm dacă numărul este mai mare decât cel mai mare număr cu prima cifră maximă întâlnit până acum
   elif first_digit == max_first_digit and num > max_num:
       # Dacă da, actualizăm variabila max_num cu noul număr
       max_num = num

print("Datele sunt introduse corect.")

  1. Afisam rezultatul

print(f"Numărul cu prima cifră maximă este {max_num}.")


</syntaxhighlight>