1002 - Paginare
Cerință
Pentru numerotarea paginilor unei serii enciclopedice formate din unul sau mai multe volume se presupune că se folosesc n cifre. Fiecare volum are 300 de pagini, eventual cu excepţia ultimului volum care ar putea avea mai puţine. Pentru n dat, să se determine numărul de volume din serie V şi numărul de pagini P ale ultimului volum. Dacă nu este posibilă numerotarea paginilor folosind n cifre, se va afişa mesajul IMPOSIBIL.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numerele V P, separate prin exact un spaţiu, sau mesajul IMPOSIBIL.
Restricții de precizări
- 1 ⩽ n ⩽ 1000000000
- numărătoarea paginilor începe de la 1
Exemplul 1
- Intrare
- 999
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 2
- 105
Exemplul 2
- Intrare
- 900
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- IMPOSIBIL
Rezolvarea ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(n):
return n.isdigit() and 1 <= int(n) <= 100000
def paginare(n):
max_pagini = 10**n - 1
if max_pagini < 300: print("IMPOSIBIL") else: V = max_pagini // 300 P = max_pagini % 300 if P == 0: P = 300
print("Numarul de volume este:", V) print("Numarul de pagini ale ultimului volum este:", P)
if __name__ == '__main__':
n = int(input("Introduceti numarul de cifre: "))
if validare(n):
n = int(n) print("Datele introduse corespund restricțiilor impuse.") paginare(n)
else:
print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>