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
0171 - Prima Cifra Minima
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!
Sursă: [https://www.pbinfo.ro/probleme/171/primaciframinima] == Cerință == Să se scrie un program care citește un șir de n numere naturale şi determină numărul din șir care are prima cifră minimă. Dacă există mai multe numere cu prima cifră minimă, se va determina cel mai mare dintre acestea. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.".Programul afișează pe ecran numărul cerut. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == * 1 ≤ '''n''' ≤ 10000 * cele '''n''' numere citite vor fi mai mici decât '''2.000.000.000''' == Exemple == === Exemplu 1 === ; Intrare : 5 : 72 30 12 165 725 ; Ieșire : 165 === Exemplu 2 === ; Intrare : 4 : 72 30 12 165 725 ; Ieșire : 165 === Exemplu 3 === ; Intrare : 5 : 72 30 12 165 725 ; Ieșire : 165 == Rezolvare == <syntaxhighlight lang="python" line="1"> def citeste_n(): while True: try: n = int(input("Introduceti numarul de valori: ")) if n >= 1 and n <= 1000: print("Datele sunt corecte.") return n else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.") def citeste_valori(n): valori = [] for i in range(n): while True: try: valoare = int(input("Introduceti o valoare: ")) if valoare > 0 and valoare <= 2000000000 : print("Datele sunt corecte.") valori.append(valoare) break else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar valori naturale cu mai putin de 9 cifre.") return valori def primacif(n): while n >= 10: n = n // 10 return n def cifra_minim(valori): mini = 10 max_primacif = 0 for valoare in valori: primacifra = primacif(valoare) if primacifra < mini: mini = primacifra max_primacif = valoare elif primacifra == mini and valoare > max_primacif: max_primacif = valoare return max_primacif if _name_ == '_main_': n = citeste_n() valori = citeste_valori(n) min = cifra_minim(valori) print("Numarul cu prima cifra minima si maxim dintre acestea este:", min) </syntaxhighlight> == Explicați == Acest cod este o implementare a unui program care citeste un numar n si apoi citeste n valori de la utilizator, aplica anumite restricții asupra acestora și determină numărul cu prima cifră minimă și maximă dintre acestea. Funcția "citeste_n()" primește input de la utilizator pentru numărul de valori pe care utilizatorul dorește să le introducă. În timp ce utilizatorul nu introduce un număr valid (un întreg între 1 și 1000), programul afișează un mesaj corespunzător și cere din nou input. Dacă utilizatorul introduce un număr valid, funcția returnează acest număr. Funcția "citeste_valori(n)" primește numărul de valori introduse de utilizator și returnează o listă cu valorile introduse de utilizator. În timp ce utilizatorul introduce valorile, programul aplică restricții asupra acestora: valorile trebuie să fie numere întregi pozitive mai mici decât 2 miliarde. Dacă utilizatorul introduce o valoare invalidă, programul afișează un mesaj corespunzător și cere din nou input. Funcția "primacif(n)" primește un număr și returnează prima cifră a acestuia. Funcția "cifra_minim(valori)" primește o listă de valori și determină numărul cu prima cifră minimă și maximă dintre acestea. Pentru fiecare valoare din listă, programul determină prima cifră și verifică dacă aceasta este mai mică decât cifra minimă până în acel moment. Dacă aceasta este mai mică, numărul devine noul minim. Dacă este egală cu cifra minimă, programul verifică dacă numărul respectiv este mai mare decât numărul cu prima cifră minimă și maximă până în acel moment și, dacă da, numărul devine noul număr cu prima cifră minimă și maximă. La sfârșit, funcția returnează numărul cu prima cifră minimă și maximă. În programul principal, funcțiile "citeste_n()", "citeste_valori(n)" și "cifra_minim(valori)" sunt apelate în ordine pentru a citi valorile de la utilizator și a determina numărul cu prima cifră minimă și maximă. Acest număr este apoi afișat la consolă.
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