1002 - Paginare

From Bitnami MediaWiki

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>