1482 - Numar 4

From Bitnami MediaWiki

Enunt[edit | edit source]

Ionel i-a dat numărul său de telefon N lui Vasile, dar a greșit exact o cifră de pe o anumită poziție. Se cunoaște că pe acea poziție cifra corectă este o cifra pară.

Cerința[edit | edit source]

Determinați numărul minim NR de numere de telefon pe care trebuie să le încerce Vasile astfel încât printre ele să se afle cu siguranță numărul corect de telefon al lui Ionel.

Date de intrare[edit | edit source]

Fișierul de intrare numar4.in conține pe prima linie numărul N greșit de telefon transmis de Ionel.

Date de ieșire[edit | edit source]

Fișierul de ieșire numar4.out va conține pe prima linie numărul NR de combinații necesare lui Vasile pentru a nimeri cu siguranță și numărul corect al lui Ionel.

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

Numărul N nu poate începe cu cifra 0. Numărul corect poate incepe cu cifra 0. Numărul N are cel mult 9 cifre.

Exemplul 1[edit | edit source]

numar4.in

72361 numar4.out

23

Explicație[edit | edit source]

In numarul corect:

Pe prima poziție poate fi una din cifrele: 0, 2, 4, 6, 8 sau Pe a doua poziție poate fi una din cifrele: 0, 4, 6, 8 sau Pe a treia poziție poate fi una din cifrele: 0, 2, 4, 6, 8 sau Pe a patra poziție poate fi una din cifrele: 0, 2, 4, 8 sau Pe a cincea poziție poate fi una din cifrele: 0, 2, 4, 6, 8. Așadar numărul total de combinații posibile este 5+4+5+4+5=23.

Exemplul 2[edit | edit source]

numar4.in

27544 numar4.out

22

Încărcare soluție[edit | edit source]

<syntaxhighlight lang="python" line> with open("numar4.in") as f_in:

   N = f_in.readline().strip()

valid_digit_count = 0 for i, digit in enumerate(N):

   if int(digit) % 2 == 0:
       valid_digit_count += 1

total_possibilities = 1 for i in range(valid_digit_count):

   total_possibilities *= 5

with open("numar4.out", "w") as f_out:

   f_out.write(str(total_possibilities))

</syntaxhighlight>