Informatică, întrebare adresată de qwerty948, 8 ani în urmă

Se consideră algoritmul următor
scris în pseudocod, unde x, p și n sunt numere naturale:
citește n (număr natural)
x ← 0
p ← 1
cât timp n > 0 execută
x ← x + (n mod 10 - n mod 2)*p
p ← p * 10
n ← n div 10
scrie x
Câte dintre numerele din intervalul [1,10000] nu pot fi afișate folosind algoritmul dat?
a) 736 b) 9376 c) 624 d) 2500

as vrea si o explicatie

Răspunsuri la întrebare

Răspuns de alxpog
1

Răspuns:Răspunsul corect la această întrebare este b), și anume 9376. De ce?

Explicație:Ei bine, pentru aflarea răspunsului corect este suficient să observăm faptul că variabila x din prima instrucțiune din structura cât timp nu are cum să conțină cifre impare; dacă ultima cifră a lui n este impară, atunci din cifra respectivă se scade cu restul aceluiași n la 2, care este evident 1. Astfel, x nu poate fi niciodată impar. Din această observație rezultă că x-u ce o să fie afișat nu conține cifre impare. Nu ne rămâne decât să găsim numărul de numere care conțin cifre impare. Pentru simplitate ar fi indicată găsirea numerelor ce conțin numai cifre pare, urmând la final să scădem din numărul total de numere din intervalul indicat, adică din 10000. Pentru aceasta vom lua, pe rând numerele cu 4 cifre, apoi pe cele cu 3 cifre, până la cele cu o singură cifră. O formulă utilă în acest sens este: numărul de numere cu n cifre, ce conțin cifre exclusiv pare este egal cu 4 × 5^(n-1) (aici am notat cu '^' ridicarea la putere). În cazul nostru, numărul cerut este egal cu 4×(5³+5²+5+1), care este 624. Răspunsul final este 10000-624=9376, care este aferent variantei b. Sper că ai înțeles rezolvarea. Multă baftă!


qwerty948: Multumesc pentru raspuns! Imi poti explica cum ai dedus formula?
alxpog: Pai formula seamana cu formula numarului de functii, numai ca pentru prima valoare a functiei, adica prima cifra a lui n, putem lua numai 4 cifre pare, adica 2, 4, 6, si 8. Pentru restul cifrelor avem cate 5 posibilitati. La final inmultim posibilitatile si iese 4 x 5^(nr-1); nr este numarul de cifre ale lui n si ^ este ridicarea la putere
alxpog: Ca idee, aceasta functie la care m am referit are un domeniu care reprezinta cifrele lui n, cardinalul acestuia fiind nr, iar codomeniul contine toate cifrele pare. Imi cer scuze pentru intarziere!
Alte întrebări interesante