Даны натуральные числа К и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых ровна K и которые не больше N.
вот мой код
uses crt;
var
a:array[1..20] of integer;
k,n:byte;
i,x:integer;
procedure abc(i:integer);
begin
end;
begin
clrscr;
writeln('vvedite k: '); readln(k);
writeln('vvedite n: '); readln(n);
for i:=1 to 100 do
if (i=k) and (i<=n) then a[i]:=i
else if (((i mod 10)+(i div 10))=k) and (((i mod 10) or (i div 10))<n) then a[i]:=I;
for i:=1 to 100 do
write(a[i], ' '); readln;
writeln;
end.
Предлагаю алгоритм:
Function summz(n:integer):byte;
var result:byte;
begin
result:=0;
while n>0 do
begin
inc(result,n mod 10); n:=n div 10
end;
summz:=result;
end;
var
a:array[1..10] of integer;
i, ran, k,n:integer;
begin
randomize;
readln(k,n);
for i:=1 to 10 do
begin
repeat
ran:=random(n);
until summz(ran)=k;
a[ i ]:=ran;
end;
for i:=1 to 10 do write(a[ i ],' ');
end.
Я последнее время стал неравнодушен к интереным конструкциям
А насчет процедуры - unFair, алгоримт я показал, в процедуру что тебе надо сам загонишь!