Где ошибка в этом коде? var n: array [2..5] of integer;
var a: array [1..20] of integer;
var i: integer;
begin
for i:=1 to 20 do
readln(a[i] );
if a[i] = 2 then n[2]:=n[2]+1;
if a[i] = 3 then n[3]:=n[3]+1;
if a[i] = 4 then n[4]:=n[4]+1;
if a[i] = 5 then n[5]:=n[5]+1;
writeln (n[2], n[3], n[4], n[5]);
end.
Выдает 0001 или подобные числа, что я сделал не так?
// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
begin
var (w, h) := ReadInteger2('w,h->'); // точка (w;h)
var (ox, oy) := (w / 2, h / 2); // находим координаты цента (0;0) и (w;h)
(w, h) := ReadInteger2('rw,rh->'); // ввод RW и RH
Println($'Координаты левой верхней вершины ({ox+h/2};{oy-w/2})'); // - половина высоты прибавляется и половина ширины вычитается
Println($'Координаты правой нижней вершины ({ox-h/2};{oy+w/2})'); // - половина ширины прибавляется и половина высоты вычитается
end.
Если моя математика не подводит, то должно быть верно.
Для того, чтобы выиграть, первый ход выигрывающего игрока должен быть - 2 камня. Тогда останется 5 камней. Он сможет взять от 1 до 3, оставив 4, 3 или 2 камня. И при любом его ходе (от 1 до 3) вы сможете "сподвигнуть" его взять последний (проиграть, одним словом).
Представьте:
Вы взяли 2 камня (5 осталось)Он взял 1 камень (4 осталось)Вы взяли 3 камня (1 осталось) - ему ничего не остается, кроме как взять последний и проигратьИли :
Вы взяли 2 камня (5 осталось)Он взял 2 камня (3 осталось)Вы взяли 2 камня (1 осталось) - он возьмет последний. Ему придется.Или:
Вы взяли 2 камня (5 осталось)Он взял 3 камня (2 осталось)Вы взяли 1 камень (1 остался) - он возьмет последний