1353 - Aparitii Cifra: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: ==Cerința== Determinaţi numărul de apariţii a unei cifre c în reprezentarea tuturor numerelor mai mici sau egale cu un n dat. ==Date de intrare== Pe prima linie a fişierului aparitiicifra.in se află numerele n şi c separate prin spaţii. ==Date de ieșire== Pe prima linie a fişierului aparitiicifra.out se scrie numărul de apariţii a cifrei c în reprezentarea tuturor numerelor mai mici sau egale cu n. ==Restricții și precizări== 0 < n < 2.000.000.000 0 < c <...
 
Pop Giulia (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/1353/aparitiicifra]
==Cerința==
==Cerința==
Determinaţi numărul de apariţii a unei cifre c în reprezentarea tuturor numerelor mai mici sau egale cu un n dat.
Determinaţi numărul de apariţii a unei cifre c în reprezentarea tuturor numerelor mai mici sau egale cu un n dat.
Line 22: Line 24:


==Solutie==
==Solutie==
<syntaxhighlight lang="python" line>
with open("aparitiicifra.in", "r") as f:
with open("aparitiicifra.in", "r") as f:
     n, c = f.readline().split()
     n, c = f.readline().split()
Line 32: Line 35:
with open("aparitiicifra.out", "w") as f:
with open("aparitiicifra.out", "w") as f:
     f.write(str(c_count))
     f.write(str(c_count))
</syntaxhighlight>

Latest revision as of 12:59, 20 May 2023

Sursa: [1]

Cerința[edit | edit source]

Determinaţi numărul de apariţii a unei cifre c în reprezentarea tuturor numerelor mai mici sau egale cu un n dat.

Date de intrare[edit | edit source]

Pe prima linie a fişierului aparitiicifra.in se află numerele n şi c separate prin spaţii.

Date de ieșire[edit | edit source]

Pe prima linie a fişierului aparitiicifra.out se scrie numărul de apariţii a cifrei c în reprezentarea tuturor numerelor mai mici sau egale cu n.

Restricții și precizări[edit | edit source]

0 < n < 2.000.000.000 0 < c < 10

Exemplu:[edit | edit source]

aparitiicifra.in

15 1 aparitiicifra.out

8

Explicație[edit | edit source]

Cifra 1 a apărut în numerele 1, 10, 11 (de două ori), 12, 13, 14, 15.

Solutie[edit | edit source]

<syntaxhighlight lang="python" line> with open("aparitiicifra.in", "r") as f:

   n, c = f.readline().split()
   c_count = 0
   for i in range(1, int(n) + 1):
       for digit in str(i):
           if digit == c:
               c_count += 1

with open("aparitiicifra.out", "w") as f:

   f.write(str(c_count))

</syntaxhighlight>