Объяснение:
Ответ и объяснение в фоте
Попытка поиска выигрышной стратегии может быть сделана при помощи метода, получившего название "бэкрекинг" (backtracking - обратное прослеживание).
Рассматриваем финальную позицию для второго студента. У него должно оставаться от 1 до 4 карточек, чтобы он мог их все забрать и не оставить карточек первому студенту. Следовательно, у первого студента должно быть ровно 5 карточек. Забрав от 1 до 4 карточек, он оставит второму студенту как раз требуемое количество карточек.
Чтобы у первого студента осталось 5 карточек, второй студент должен иметь от 6 до 9 карточек, т.е. первый студент для этого должен делать выбор из 10 карточек.
И так далее. Выигрышная стратегия второго студента состоит в том, чтобы предоставлять первому студенту количество карточек, кратное 5.
Но исходное количество карточек равно 20; это число кратно 5, следовательно второй студент всегда выигрывает, применяя описанную стратегию (она же - алгоритм).
Var
i:integer;
a:array[1..11]of integer;
begin
for i:= 1 to 11 do
begin
a[i]:=random(50);
write(a[i],' ');
end;
writeln;
write('Кратны 2: ');
for i:=1 to 11 do
if a[i] mod 2=0 then write(a[i],' ');
<span>end. </span>
<span>Pred('n') = 'm' // символ, предшествующий n
Ord('z')-Ord('y') = 1 // порядковые номера символов (коды) отличаются на 1
Ord(Chr(13)) = 13 // код символа с кодом 13 = 13</span>
1.
var a:array[1..100] of integer;
n,i:integer;
begin
write('N = ');readln(n);
writeln('Полученный массив:');
for i:=1 to n do a[i]:=2*i-1;
for i:=1 to n do write(a[i]:3);
writeln;
end.
Пример:
N = 5
Полученный массив:
1 3 5 7 9
2.
const n=15;
var a:array[1..n] of integer;
k,i:integer;
begin
Randomize;
writeln('Массив A:');
for i:=1 to n do
begin
a[i]:=random(21);
write(a[i]:3);
end;
writeln;
write('K = '); readln(k);
for i:=1 to n div k do write(a[i*k]:3);
writeln;
end.
Пример:
Массив A:
6 6 8 14 15 5 18 6 18 1 17 6 3 19 2
K = 3
8 5 18 6 2