Вот примерный алгоритм:massiv[i,j] - массив, заполненный введенными цифрами, если ячейка пустая - 0.FullCheck - полная проверка что нет совпадений в рядах/столбцахPreCheck - неполная (для уже заполненной части таблицы)FullCheck и PreCheck могут быть одной и той же функциейglobal massivglobal count=0check(1,1);procedure check;begin if (posi,posj)=(9,9) then begin if FullCheck then count=count+1 end else begin if PreCheck then begin (posi,posj)=next(posi,posj) if massiv[posi,posj]=0 then begin for i=1 to 9 do begin massiv[posi,posj]=i; check; end; massiv[posi,posj]=0; end else check; (posi,posj)=prev(posi,posj) end; end;end;