Se citesc doua numere naturale n si s (n<=10, s<=20). Afisati în ordine crescatoare toate numerele cu n cifre distincte care au suma cifrelor egala cu s. Daca problema nu are solutie, se va afisa mesajul “NU EXISTA”. Exemple: n=4, s=9 => 1026, 1035, 1053, 1062, 1206, 1260, 1305 … n=4, s=5 =>„NU EXISTA”
Răspunsuri la întrebare
Răspuns de
1
var a:array of byte;
n,s,c,k,k1,a1,a2,g:byte;
i,r,max,e:integer;
begin
read(n,s);
writeln;
setlength(a,n);
i:=1;
for c:=1 to n-1 do i*=10;
max:=i*10-1;
for i:=i to max do begin
r:=i;
k:=0;
k1:=0;
g:=0;
for a1:=0 to n-1 do begin
k:=r mod 10;
r:=r div 10;
inc(k1,k);
a[a1]:=k;
end;
for a1:=0 to n-1 do
for a2:=0 to n-1 do
if (a[a2]=a[a1]) and (a1<>a2) then inc(g);
if (g=0) and (k1=s) then begin
write(i,' ');
inc(e);
end;
end;
if e=0 then write('NU EXISTA');
end.
n,s,c,k,k1,a1,a2,g:byte;
i,r,max,e:integer;
begin
read(n,s);
writeln;
setlength(a,n);
i:=1;
for c:=1 to n-1 do i*=10;
max:=i*10-1;
for i:=i to max do begin
r:=i;
k:=0;
k1:=0;
g:=0;
for a1:=0 to n-1 do begin
k:=r mod 10;
r:=r div 10;
inc(k1,k);
a[a1]:=k;
end;
for a1:=0 to n-1 do
for a2:=0 to n-1 do
if (a[a2]=a[a1]) and (a1<>a2) then inc(g);
if (g=0) and (k1=s) then begin
write(i,' ');
inc(e);
end;
end;
if e=0 then write('NU EXISTA');
end.
blindseeker90:
Frumoasa rezolvare. Bravo
Alte întrebări interesante
Limba română,
8 ani în urmă
Istorie,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă