0364 - Cifre 1
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 sunt introduse corect.
- 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.")
- Inițializăm variabilele max_num și max_first_digit cu valori minime
max_num = -1 max_first_digit = -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.")
- Afisam rezultatul
print(f"Numărul cu prima cifră maximă este {max_num}.")
</syntaxhighlight>