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
3074 - Numeres
(section)
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!
== Rezolvare == <syntaxhighlight lang="python" line> #3074 def find_numbers(numere, suma): found_numbers = [] for num in range(10**(numere-1), 10**numere): if sum(int(digit) for digit in str(num)) == suma: found_numbers.append(num) return found_numbers def print_numbers(found_numbers): if len(found_numbers) == 0: print(0) else: print(*found_numbers) print(len(found_numbers)) if __name__ == '__main__': numere, suma = map(int, input("Numerele si Suma, separate prin spatiu sunt:").split()) if numere < 1 or numere > 7 or suma < 1 or suma > 63: print("Datele nu corespund restricțiilor impuse.") else: print("Datele sunt introduse corect.") numbers = find_numbers(numere, suma) print_numbers(numbers) </syntaxhighlight> '''Explicatie cod:''' Funcția find_numbers(numere, suma) primește ca parametri doi întregi, numere și suma. Scopul acestei funcții este de a găsi toate numerele cu n cifre astfel încât suma cifrelor acestora să fie egală cu suma. Funcția inițializează o listă goală pentru a adăuga numerele care respectă condiția dată. Apoi, cu ajutorul unei bucle for, se parcurg toate numerele de n cifre. Aceste numere sunt generate cu ajutorul funcției range(10**(numere-1), 10**numere). Pentru fiecare număr generat, se calculează suma cifrelor acestuia și se compară cu suma. Dacă suma cifrelor este egală cu suma, numărul respectiv este adăugat în lista found_numbers. La final, funcția returnează lista cu numerele găsite. Funcția print_numbers(found_numbers) primește lista found_numbers și afișează numerele găsite. Dacă lista este goală, se afișează valoarea 0. În caz contrar, numerele sunt afișate folosind operatorul * pentru a transforma lista în argumente separate și se afișează și lungimea listei. În cadrul declarației if __name__ == '__main__', programul primește de la tastatură valorile numere și suma folosind funcția input(), le converteste în numere întregi folosind funcția map(int, input().split()) și le atribuie variabilelor corespunzătoare. Apoi, se verifică dacă valorile citite respectă restricțiile impuse. Dacă valorile sunt valide, se apelează funcția find_numbers(numere, suma) pentru a găsi numerele cu proprietatea dată și apoi se afișează numerele găsite folosind funcția print_numbers(found_numbers). Dacă valorile nu sunt valide, se afișează un mesaj de eroare.
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