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
0966 - X Min
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/966/xmin] == Enunț == Fie '''X''' un număr natural format din exact '''K''' cifre, toate nenule, iar '''S''' suma cifrelor lui '''X'''. Pornind de la aceste numere, se construiește mulțimea '''M''' a tuturor numerelor naturale care: au suma cifrelor egală cu '''S''' sunt formate fiecare din exact '''K''' cifre, toate cifrele fiind nenule. Pentru fiecare număr din mulțimea '''M''' se calculează produsul cifrelor sale. Fie '''P''' valoarea maximă a produselor calculate. Cel mai mic număr din mulțimea '''M''' care are produsul cifrelor egal cu '''P''' îl vom denumi elementul primar al mulțimii. == Cerință == Scrieţi un program care să citească numerele '''K''' și '''X''' (cu semnificația din enunț) şi care să determine elementul primar al mulțimii '''M'''. == Date de intrare == Programul citește de la tastatură numerele '''K X''', numărul '''X''' fiind format din '''K''' cifre. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Programul va afișa pe ecran un număr natural de '''K''' cifre reprezentând elementul primar al mulțimii '''M'''. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == * '''1 ≤ K ≤ 33''' * toate cifrele lui '''X''' sunt nenule == Exemple == === Exemplu 1 === ; Intrare : 3 : 124 ; Ieșire : 223 === Exemplu 2 === ; Intrare : 36 ; Ieșire : Datele nu sunt comform restricțiilor impuse == Rezolvare == <syntaxhighlight lang="python" line="1"> def citeste_k(): while True: try: k = int(input("Introduceti numarul de cifre: ")) if 1<=k<=33: print("Datele sunt corecte.") return k else: print("Datele nu sunt conform restricțiilor impuse.") exit() except ValueError: print("Trebuie introduse doar numere intregi.") exit() def elementul_primar(k): x = int(input("Introduceti numarul : ")) sum = 0 for c in str(x): if c.isdigit(): sum += int(c) a = [0] * 101 poz = 1 while k: a[poz] = sum // k sum -= a[poz] poz += 1 k -= 1 a = a[1:poz] a.sort() return int(''.join(str(x) for x in a)) if __name__ == '__main__': k = citeste_k() elem_primar = elementul_primar(k) print("Elementul primar al mulțimii este: ", elem_primar) </syntaxhighlight> == Explicații == Da, acesta este un program Python care citeste de la utilizator un număr întreg k reprezentând numărul de cifre și un număr întreg x și returnează elementul primar al mulțimii, format din cifrele lui x. Funcția citeste_k() primește input-ul utilizatorului și se asigură că este un număr întreg cuprins între 1 și 33. Dacă input-ul nu este corect, utilizatorul primește un mesaj corespunzător și programul se oprește. Funcția elementul_primar(k) primește numărul x de la utilizator și determină cifrele sale, apoi creează o listă goală a cu o lungime de 101. Acest lucru se face pentru a putea stoca cifrele elementului primar, deoarece nu știm câte cifre va avea elementul primar în avans. În continuare, funcția calculează suma cifrelor lui x și apoi împarte această sumă la numărul de cifre k. Rezultatul împărțirii este stocat în lista a, la poziția poz și apoi scăzut din suma totală a cifrelor lui x. Acest lucru se repetă pentru fiecare cifră a elementului primar. După completarea listei a, aceasta este sortată și transformă într-un număr întreg folosind funcția join(). Acest număr reprezintă elementul primar al mulțimii. În blocul if __name__ == '__main__':, programul rulează citind numărul k de la utilizator, apoi determinând elementul primar al mulțimii și afișându-l la ieșire.
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