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

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 stassahul
0
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.
Răspuns de uleiaalex
0
Sper ca te-am ajutat, am sa incerc sa vin daca pot si cu varianta c++
Anexe:

deni14: multumesc mult :*
Alte întrebări interesante