1284 - Carte 1: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
Line 22: | Line 22: | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; Datele de intrare: | ; Datele de intrare: | ||
: Introduceti numarul de cifre folosite pentru numerotarea paginilor: | |||
: 1791 | : 1791 | ||
: Datele sunt introduse corect. | : Datele sunt introduse corect. |
Revision as of 20:09, 26 April 2023
Sursa: [1]
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 sunt introduse corect.
- Datele de ieșire
- 633
Rezolvare
<syntaxhighlight lang="python" line>
- 1284
def read_number():
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: return n except ValueError: print("Introduceti un numar valid.")
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)
def main():
n = read_number()
if not validate_input(n): return
total_pages = calculate_pages(n) display_pages(total_pages)
if __name__ == '__main__':
main()
</syntaxhighlight>
Explicatie cod:
Funcția 1: read_number() Această funcție primește de la utilizator numărul de cifre folosite pentru numerotarea paginilor și îl returnează.
Funcția 2: calculate_pages(n) Această funcție primește numărul de cifre folosite pentru numerotarea paginilor și calculează numărul total de pagini ale cărții.
Funcția 3: display_pages(total_pages) Această funcție primește numărul total de pagini și îl afișează.