Добродушные форумщики помогите пожалуйста решить задачу в паскале или посоветуйте способ решения и алгоритм:
Среди всех n-значных чисел указать те, сумма цифр потом равна данному числу k.
program tz;
var
n,k,sum:LongInt;
temp,pred,nach,i:LongInt;
begin
writeln('vvedite chislo k');
readln(k);
writeln('vvedite koli4estvo cifr v 4isle');
readln(n);
case n of
1 :
begin
nach:=1;
pred:=9;
end;
2 :
begin
nach:=10;
pred:=999;
end;
3 :
begin
nach:=100;
pred:=999;
end;
4 :
begin
nach:=1000;
pred:=9999;
end;
5 :
begin
nach:=10000;
pred:=99999;
end;
end;
for i:=nach to pred do
begin
sum:=0;
temp:=i;
while temp>0 do
begin
sum:=sum+temp mod 10;
temp:=temp div 10;
end;
if sum=k then
writeln('число равно ',i);
end;
end.