1284 - Carte 1: Diferență între versiuni

De la Universitas MediaWiki
Linia 31: Linia 31:
#1284
#1284
def read_number():
def read_number():
     n = int(input("Introduceti numarul de cifre folosite pentru numerotarea paginilor: "))
     while True:
    return n
        try:
            n = int(input("Introduceti numarul de cifre folosite pentru numerotarea paginilor: "))
            if n < 1:
                print("Numarul introdus trebuie sa fie pozitiv si diferit de zero.")
            else:
                return n
        except ValueError:
            print("Introduceti un numar valid.")
 
def calculate_pages(n):
def calculate_pages(n):
     pagini = 0
     pagini = 0
Linia 42: Linia 50:


     return pagini-1
     return pagini-1
def display_pages(total_pages):
def display_pages(total_pages):
     print("Numarul de pagini al cartii este:", total_pages)
     print("Numarul de pagini al cartii este:", total_pages)
n = read_number()
 
total_pages = calculate_pages(n)
if __name__ == '__main__':
display_pages(total_pages)
    n = read_number()
    total_pages = calculate_pages(n)
    display_pages(total_pages)
 
</syntaxhighlight>
</syntaxhighlight>
'''Explicatie cod:'''
'''Explicatie cod:'''

Versiunea de la data 2 aprilie 2023 17:24

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, programul va rula.

În cazul în care datele nu respectă restricțiile, 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

Intrare
1791
Ieșire
633


Rezolvare

#1284
def read_number():
    while True:
        try:
            n = int(input("Introduceti numarul de cifre folosite pentru numerotarea paginilor: "))
            if n < 1:
                print("Numarul introdus trebuie sa fie pozitiv si diferit de zero.")
            else:
                return n
        except ValueError:
            print("Introduceti un numar valid.")

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__':
    n = read_number()
    total_pages = calculate_pages(n)
    display_pages(total_pages)

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ă.