1353 - Aparitii Cifra

De la Universitas MediaWiki
Versiunea din 20 mai 2023 12:59, autor: Pop Giulia (discuție | contribuții)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Sursa: [1]

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 < 10

Exemplu:

aparitiicifra.in

15 1 aparitiicifra.out

8

Explicație

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

Solutie

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))