В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
xenyazhardin
xenyazhardin
15.11.2022 00:07 •  Информатика

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень, добавить в кучу четыре камня, или увеличить количество камней в куче в 2 раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 19 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 52. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 52 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 51.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Показать ответ
Ответ:
Diyora2007
Diyora2007
16.08.2020 08:44

1)

var a,b,x,y:longint;

begin

write("Vvedite nachalo i konec otrezka: ");

read(a,b);

write("Vvedite x: ");

read(x);

y:=sqr(x)*x;

if (y>a)and(y<b) then write("Na dannom otrezke znachenie funkcii ravno ",y) else write("Na dannom otrezke net reshenii");

readln

end.

2)

var c,i:byte;

begin

for i:=49 to 215 do

if (i mod 4=0) then c:=c+1;

write("Kolichestvo chisel, kratnyh 4 na zadannom promezhutke ravno ",c);

readln

end.

3)

var i:integer;

p:longint;

for i:=1000 to 9999 do

if (i mod 10=3) then p:=p*i;

write("Proizvedenie chetyrehznachnyh chisel, okanchivaushihsya na 3 ravno ",p);

readln

end.

4)

var i:byte;

c:integer;

begin

for i:=221 to 778 do

if ((i mod 10)=(i div 100)) then c:=c+1;

write("Kolichestvo chisel ravno ",c);

readln

end.

5)

var i:longint;

c:integer;

begin

for i:=10000 to 99999 do

if ((i mod 10)=(i div 10000))and(((i mod 100)div 10)=((i div 1000)mod 10)) then c:=c+1;

write("Kolichestvo chisel ravno ",c);

readln

end.

0,0(0 оценок)
Ответ:
airatfack2000oz7glu
airatfack2000oz7glu
11.11.2020 07:33

ответ: Считываем первое число(n), чтобы определить, до какого момента должен продолжаться цикл. Создаем переменную sum, чтобы хранить найденное количество чисел, удовлетворяющих условию. Запускаем цикл, считываем число, если последняя цифра - 4 (проверяем при получения остатка от деления на 10) и число делится на 6 (проверяем при получения остатка от деления на 6), то добавляем к в переменную sum 1.

n = int(input())

sum = 0

for i in range(0, n):

  current = int(input())

  if current % 10 == 4 and current % 6 == 0:

      sum += 1

print(sum)

Объяснение: n = int(input())

sum = 0

for i in range(0, n):

  current = int(input())

  if current % 10 == 4 and current % 6 == 0:

      sum += 1

print(sum)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота