Правила игры: на кону 100 камешков, два игрока по очереди берут от 1 до 10 камней. выигрывает тот, кто возьмёт последний камень. как должен играть первый игрок, чтобы гарантированно выиграть?
Ему необходимо взять 8 камней. Затем каждый ход брать столько камней, чтобы в сумме со вторым игроком было 10 (то есть если 2-й взял 1 камень, взять 9, если 2 - 8), или же 10, если 2-й взял 10. Таким образом, останется 12 камней. А дальше если 2-й берёт 10, 1-й берёт 1 камень, 1 остаётся. Если же взял от 1 до 9, то добавляет до 11, и остаётся 1 камень.
Честно, не поняла ваш код вообще. Почему нет цикла? Предлагаю свое решение: 1)Cначала заполняем массив случайными числами от 2 до 5 (включительно) 2)Потом выводим его (Для проверки) 3) Потом считаем оценки. Но сначала нужно обнулить переменные( В самом начале это делали), а то получится кака (:
program N_0547847; var b, c, d, f, i:integer; a: array [1..20] of integer; begin; randomize; b:=0; c:=0; d:=0; f:=0; for i:=1 to 20 do begin a[i]:=random(4)+2; write(a[i],' '); end; writeln; for i:=1 to 20 do begin if a[i]=2 then b:=b+1; if a[i]=3 then c:=c+1; if a[i]=4 then d:=d+1; if a[i]=5 then f:=f+1; end; writeln('Двоек: ', b); writeln('Троек: ', c); writeln('Четверок: ',d); writeln('Пятерок: ',f); end.
Невнятно как-то сформулировано - то индексы найти, то массива нету... Пишу, как понял.
ОТДЕЛ Задание+; ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\";
ПЕР массив: РЯД 15 ИЗ ВЕЩ; сч, найдено: ЦЕЛ; найденное, индексы: ДОСТУП К РЯД ИЗ ВЕЩ;
УКАЗ найдено := 0; СОЗДАТЬ(индексы, РАЗМЕР(массив) - 1); ОТ сч := 1 ДО РАЗМЕР(массив) - 1 ВЫП ЕСЛИ массив[сч] = массив[0] ТО найденное[найдено] := сч; УВЕЛИЧИТЬ(найдено) КОН КОН; ЕСЛИ найдено = 0 ТО Вывод.Цепь("Не найдено.") ИНАЧЕ СОЗДАТЬ(индексы, найдено); ОТ сч := 0 ДО найдено - 1 ВЫП индексы[сч] := найденное[сч] КОН; найденное := ПУСТО КОН