Informatică, întrebare adresată de Puiutz, 9 ani în urmă

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
dar sa fie eficienta

Răspunsuri la întrebare

Răspuns de stassahul
1
var
c:byte;
t:text;
i,a,p,n,k:integer;

begin
assign(t,'aparitiicifra.in');
reset(t);
read(t,n,c);
close(t);

if (n>=2000000000) or (n<=0) or (c>=10) or (c<=0) then exit; 

a:=0;
for i:=1 to n do begin
k:=i;
while k<>0 do begin
p:=k mod 10;
k:=k div 10;
if p=c then inc(a);
end;
end;

assign(t,'aparitiicifra.out');
rewrite(t);
write(t,a);
close(t);
end.

Puiutz: apreciez dar eu am nevoie in c++
stassahul: Pai trebuia sa scrii in tema
stassahul: Dar nu sa scrii la sfirsit
Alte întrebări interesante