ВУЗ:
Составители:
Рубрика:
решение одного из победителей олимпиады, ныне студентки 4 курса
факультета ПММ Польшаковой Натальи Викторовны}
program children;
const nmax=20; {максимальное число игроков}
var n, {фактическое число играков}
m, {число слов в считалке}
i,j:integer;
round: set of 1..nmax;
begin
read(n,m);
round:=[1..n]; {в круге стоят n детей}
i:=n;
repeat
for j:=1 to m do
repeat
i:=i mod n+1;
until i in round;
write(i:3);
round:=round-[i]
until round=[]
end.
Задача 3. " Ферзь "
Требуется расставить на шахматной доске восемь ферзей так, чтобы
они не угрожали друг другу, т.е. никакие две фигуры не стоят ни на
одной горизонтали, ни на одной вертикали, ни на одной диагонали.
Приводится решение одного из победителей олимпиады, ныне студентки
4 курса факультета ПММ Шаховой Натальи}
program FERSI;
const n=8; {размер доски}
type board=array [1..n,1..n] of boolean;
var doc:board;
exist:boolean;
x,y:integer;
{---------- Функция, проверяющая расстановку ферзей на поле (x,y)----
------}
function may (var doc:board; x,y:integer):boolean;
var i,j:integer;
zan:boolean;
begin {may}
i:=x; zan:=false;
{ просмотр вертикали }
while (i>1) and not zan do
begin
i:=i-1;
zan:=doc[i,y]
end;
i:=x; j:=y;
{ просмотр левой диагонали }
while (i>1) and (j>1) and not zan do
begin
i:=i-1;
j:=j-1;
zan:=doc[i,j]
end;
i:=x; j:=y;
{ просмотр правой диагонали }
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »