Вообщем дано число N. Надо выяснить если возможно поставить все числа в диапазоне от 1 lдо N в массив из L линий так что-бы сума чисел из каждой линии будет одинаковой. (место той или иной цифры в массиве не важно, главное что бы не повторялись)
Например N:=8 , L=4
1 8 9 (для этого примера у меня всё работает, и для всех где N=2*L;
2 7 9 Я как понимаю что тут надо Бэктрэкинг использовать или другую рекурсию, но как это сделать
3 6 9 я не знаю.
4 5 9 {в первых колонках цифры, в третий сума}
for i:=1 to N do
S:=S+i;
if S mod L<>0 then Q:=false {тут выяснем суму которую надо посчитать,
else Q:=true; например если если N=8 то сума будет 9}
S:=S div L;
if Q=True then begin
for i:=1 to L do begin
k:=0; Sa:=0; M:=N+1-i;
while Sa<>S do begin
Sa:=Sa+M; {а тут бред... числа всё равно повторяются}
inc(k);
if Sa>S then begin Sa:=Sa-M; dec(m); dec(k)
end else begin a[i,k]:=M; dec(m); end;
h:=k;
end;
end;
end;
for i:=1 to L do begin
a[i,k+1]:=S;
for j:=1 to k+1 do begin
write(a[i,j],' '); end;