Показать сообщение отдельно
Старый 05.05.2010, 09:53   #2 (permalink)
bugim
Новичок
 
Регистрация: 03.05.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Буду благодарен если кто поможет перевести туже программу с паскаля на С++

program Queens;
const N=8;
type Index=1..N;
Rasstanovka=array [Index] of 0..N;
var X:Rasstanovka;
Count:word;
function P(var X:Rasstanovka;k,y:Index):boolean;
var i:Index;
begin
i:=1;
while (i<k)and(y<>X[i])and(abs(k-i)<>abs(y-X[i])) do inc(i);
P:=i=k
end;
procedure Backtracking(k:Index);
var i,y:Index;
begin
for y:=1 to N do
if P(X,k,y) then
begin
X[k]:=y;
if k=N then
begin
for i:=1 to N do write(X[i]);writeln;inc(Count)
end;
Backtracking(k+1)
end
end;
begin
Count:=0;
writeln('Расстановки ',N,' ферзей:');
Backtracking(1);
writeln('Всего ',Count,' расстановок')
end.

Последний раз редактировалось bugim; 05.05.2010 в 10:13
bugim вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070