1002 - Paginare: Difference between revisions
Pagină nouă: == 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 == Progr... |
No edit summary |
||
Line 1: | Line 1: | ||
== Cerință == | == 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 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. | ||
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 == | == Date de intrare == | ||
Programul citește de la tastatură numărul n. | Programul citește de la tastatură numărul '''n'''. | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul va afișa pe ecran numerele V P, separate prin exact un spaţiu, sau mesajul IMPOSIBIL. | Programul va afișa pe ecran numerele '''V P''', separate prin exact un spaţiu, sau mesajul IMPOSIBIL. | ||
== Restricții de precizări == | == Restricții de precizări == | ||
*1 ⩽ n ⩽ 100000 | *1 ⩽ '''n''' ⩽ 100000 | ||
*numărătoarea paginilor începe de la 1 | *numărătoarea paginilor începe de la 1 | ||
== Exemplul 1== | == Exemplul 1== | ||
Line 22: | Line 21: | ||
: Datele introduse corespund restricțiilor impuse. | : Datele introduse corespund restricțiilor impuse. | ||
: IMPOSIBIL | : 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> |
Revision as of 08:56, 19 March 2023
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 ⩽ 100000
- 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>