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
1284 - Carte 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/4273/prodpp] == Cerinţa == Pentru a se numerota paginile unei cărți s-au folosit '''n''' cifre. Câte pagini are cartea? == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul afișează pe ecran numărul '''p''', reprezentând numărul de pagini ale carții. Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează cate pagini are cartea. În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse." == Restricţii şi precizări == 1 ≤ '''n''' ≤ 1.000.000 pentru fiecare test exista soluție. numerotarea paginilor se face de la 1. == Exemplul 1 == ; Datele de intrare: : Introduceti numarul de cifre folosite pentru numerotarea paginilor: : 1791 ; Datele de ieșire: : Datele sunt introduse corect. : Numarul de pagini al cartii este: : 633 <br> == Rezolvare == <syntaxhighlight lang="python" line> #1284 def validate_input(n): if not isinstance(n, int): print("Datele nu corespund restricțiilor impuse.") return False elif n < 1: print("Datele nu corespund restricțiilor impuse.") return False else: return True def calculate_pages(n): pagini = 0 cifre = 0 while cifre <= n: pagini += 1 cifre += len(str(pagini)) return pagini-1 def display_pages(total_pages): print("Numarul de pagini al cartii este:", total_pages) if __name__ == '__main__': while True: try: n = int(input("Introduceti numarul de cifre folosite pentru numerotarea paginilor: ")) if n < 1: print("Datele nu corespund restricțiilor impuse.") else: if not validate_input(n): exit() total_pages = calculate_pages(n) if total_pages < 1: print("Datele nu corespund restricțiilor impuse.") else: print("Datele sunt introduse corect.") display_pages(total_pages) break except ValueError: print("Datele nu corespund restricțiilor impuse.") </syntaxhighlight> '''Explicatie cod:''' Acest cod implementează un program care calculează numărul total de pagini al unei cărți, în funcție de numărul de cifre folosite pentru numerotarea paginilor. Funcția `validate_input(n)` verifică dacă datele de intrare sunt valide, respectiv dacă numărul introdus este un întreg și este mai mare decât zero. Dacă datele nu sunt valide, se afișează un mesaj de eroare și se returnează `False`, altfel se returnează `True`. Funcția `calculate_pages(n)` calculează numărul total de pagini al cărții în funcție de numărul de cifre folosite pentru numerotarea paginilor. Algoritmul folosit este să se calculeze numărul de cifre necesare pentru a numerota fiecare pagină până la ultima pagină, astfel încât atunci când numărul de cifre necesare depășește numărul de cifre date, se știe că s-au numerotat toate paginile. Funcția `display_pages(total_pages)` afișează numărul total de pagini al cărții. În `if __name__ == '__main__':` se pornește programul. Programul citeste numărul de cifre folosite pentru numerotarea paginilor și verifică dacă datele sunt valide folosind funcția `validate_input(n)`. Dacă datele sunt valide, se calculează numărul total de pagini folosind funcția `calculate_pages(n)`. Dacă numărul total de pagini este mai mic decât 1, se afișează un mesaj de eroare, altfel se afișează un mesaj de confirmare și numărul total de pagini al cărții folosind funcția `display_pages(total_pages)`.
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