М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
mregor3
mregor3
03.02.2021 19:33 •  Информатика

решите ,завтра нужно сдать ,очень нужно с решением. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней.
Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
a) добавить в одну из куч (по своему выбору) два камня или
б) увеличить количество камней в куче в три раза.
Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию,
что в обеих кучах всего будет 48 камней или больше.
Задание 1. Для каждой из начальных позиций (5, 14), (7, 13) укажите, кто из игроков имеет
выигрышную стратегию.
Задание 2. Для каждой из начальных позиций (5, 13), (6,13), (7,11) укажите, кто из игроков имеет
выигрышную стратегию.
Задание 3. Для начальной позиции (6,12) укажите, кто из игроков имеет выигрышную стратегию.
Постройте дерево всех партий, возможных при указанной выигрышной стратегии.

👇
Открыть все ответы
Ответ:
adelinapak
adelinapak
03.02.2021

1)

var

a:array[1..50]of real; 

i,n:byte;

Sn:real; 

begin 

 write('Введите количество элементов массива: ');readln(n);

for i:=1 to n do

begin

write('a[',i,']= '); readln(a[i]);

end;

clrscr; 

writeln('Исходный массив:'); 

/* Вывод в строчку через запятую*/

for i:=1 to n-1 do write(a[i]:5:3,', '); write(a[n]:5:3,'.');

/*Простой вывод в столбик*/

for i:=1 to n do writeln(a[i]:5:3);

/*Сумма элементов, стоящих на четных местах*/ 

Sn:=0;

while i<=n do

begin

  if odd(i)=false then Sn:=Sn+a[i];

  i:=i+1;

end; 

/*Вывод ответа*/

writeln('Сумма элементов, стоящих на четных местах: ',Sn:5:3);

end. 

 

2)

var

a:array[1..50]of real;

i:byte; 

begin

 write('Введите количество элементов массива: ');readln(n);

for i:=1 to n do

begin

write('a[',i,']= '); readln(a[i]);

end;

clrscr; 

writeln('Исходный массив:'); 

/* Вывод в строчку через запятую*/

for i:=1 to n-1 do write(a[i]:5:3,', '); write(a[n]:5:3,'.');

/*количество элементов кратных 3*/

kol:=0; 

for i:=1 to n do

if a[i] mod 3 =0 then kol:=kol+1; 

/*Вывод ответа*/

writeln('Количество элементов массива, кратных трем: ',kol);

end. 

4,6(65 оценок)
Ответ:
тома510
тома510
03.02.2021

1.

program okay; {здесь я думаю, все понятно}

var i, count :byte; {i - будет счетчиком, в переменную count мы запишем количество четных чисел}

begin

count:=0; {пока что мы не нашли ни одного четного числа}

for i:= 10 to 99 do {перебираем двузначные числа, т. е. от 10 до 99}

If i mod 2 = 0 then count := count+1; {если остаток от деления на 2 (mod) равен нулю, то число четное и мы к количеству найденых прибавляем единицу}

write(count); {выводим на экран найденое количество четных чисел}

end. {конец программы}

 

2.

program okay; {здесь я думаю, все понятно}

var i, count :byte; {i - будет счетчиком, в переменную count мы запишем количество чисел с четной первой цифрой}

begin

count:=0; {пока что мы не нашли ни одного нужного числа}

for i:= 10 to 99 do {перебираем двузначные числа, т. е. от 10 до 99}

If (i div 10) mod 2 = 0 then count := count+1; {находим целую часть от деления числа на 10 (т. е. первую цифру) и остаток от деления ее на 2 равен нулю, то эта цифра четная}

write(count); {выводим на экран найденое количество искомых чисел}

end. {конец программы}

 

3.

program okay; {здесь я думаю, все понятно}

var i :byte; {i - будет счетчиком}

begin

for i:= 10 to 99 do {перебираем двузначные числа, т. е. от 10 до 99}

If (i mod 3 = 0) and (i mod 4 = 0) then write(i); {проверяем кратность путем нахождения остатков от деления на 3 и 4 и выводим число на экран в случае выполнения условия кратности}

end. {конец программы}

 

4.

program okay; {здесь я думаю, все понятно}

var i : integer; {берем тип integer, т. к в тип байт не входят все трехзначные числа, i - будет счетчиком}*

a, b, c : byte; {a - цифра сотен, b - десятков, c - единиц}

begin

for i:= 100 to 990 do begin {перебираем трехзначные числа, т. е. от 100 до 999}

a:=i div 100; {находим целую часть от деления числа на 100, т. е. цифру сотен}

b:=(i div 10) mod 10; {находим двузначное число являющееся целой частью данного числа на 10, а затем остаток от деления на 10, таким образом получаем число десятков}

c:=i mod 10; {находим остаток от деления числа на 10, т. е. цифру единиц}

if (a=b) and (b=c) then write(i); {Проверяем, выполняется ли условие равенства цифр числа и в случае выполнения, выводим данное число на экран}

end; {закрываем цикл}

end. {конец программы}

 

* - тип byte может принимать значения от 0 до 255, а тип integer - от -32767 до 32768.

Прим: все что выделено жирным, это код программы. Все остальное - это пояснение и вставлять их в программу не нужно.

4,6(60 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ