1353 - Aparitii Cifra

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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