Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0364 - Cifre 1
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
sursa: [https://www.pbinfo.ro/probleme/364/cifre1] == 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 == === Rezolvare ver. 1 === <syntaxhighlight lang="python" line> def citeste_numar_intreg(mesaj): while True: try: numar = int(input(mesaj)) return numar except ValueError: print("Introduceți un număr valid.") def determina_numar_maxim(n): max_num = -1 max_first_digit = -1 for i in range(n): while True: num = citeste_numar_intreg(f"Introduceți numărul {i + 1}: ") if num < 10: print("Numărul trebuie să fie natural și să aibă cel puțin două cifre.") continue break first_digit = int(str(num)[0]) if first_digit > max_first_digit: max_first_digit = first_digit max_num = num elif first_digit == max_first_digit and num > max_num: max_num = num return max_num if __name__ == "__main__": while True: n = citeste_numar_intreg("Introduceți numărul de numere: ") if n < 1 or n > 1000: print("Numărul de numere trebuie să fie un număr natural între 1 și 1000.") continue break numar_maxim = determina_numar_maxim(n) print("Datele sunt introduse corect.") print(f"Numărul cu prima cifră maximă este {numar_maxim}.") </syntaxhighlight> === Rezolvare ver. 2 === <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>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width