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

7. Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в три раза и затем добавить в кучу
один камень. Игра завершается в тот момент, когда количество камней в куче становится не менее 34. Победителем считается игрок, сделавший последний ход, то есть первым получивший
кучу, в которой будет 34 или больше камней. В начальный момент в куче было S камней,
1 ≤ S ≤33.
Задание 1. а) Укажите все такие значения числа S, при которых Паша может выиграть в один
ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого
указанного значения S.
б) Укажите такое значение S, при котором Паша не может выиграть за один ход, но при любом
ходе Паши Вася может выиграть своим первым ходом. Опишите выигрышную стратегию Васи.
Задание 2. Укажите все значения S, при которых у Паши есть выигрышная стратегия, причём
Паша не может выиграть за один ход и может выиграть своим вторым ходом независимо от того,
как будет ходить Вася. Для каждого указанного значения S опишите выигрышную стратегию
Паши.
Задание 3. Укажите хотя бы одно значение S, при котором у Васи есть выигрышная стратегия,
позволяющая ему выиграть первым или вторым ходом при любой игре Паши, и у Васи нет
стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного
значения S опишите выигрышную стратегию Васи. Постройте дерево всех партий, возможных
при этой выигрышной стратегии Васи (в виде рисунка или таблицы).

Показать ответ
Ответ:
эля1413
эля1413
11.06.2022 01:26
//Pascal ABC.NET v3.1 сборка 1172

//1

Var
 a,b,c,max,i:integer;
 ca,cb,cc,smax:string;
begin
max:=-1;
 readln(ca);
 readln(cb);
 readln(cc);
 for i:=1 to 3 do
  begin
   if strtoint(ca[i])>max then
    begin
     smax:=ca;
     max:=strtoint(ca[i]);
    end;
   if strtoint(ca[i])>max then
    begin
     smax:=cb;
     max:=strtoint(ca[i]);
    end;
   if strtoint(cc[i])>max then
    begin
     smax:=cc;
     max:=strtoint(ca[i]);
    end;
   end;
 writeln(smax);
end.

Пример ввода:
123
456
908
Пример вывода:
908

//2

Var
 n,n1:integer;
 s:string;
begin
 readln(n);
 n1:=n;
   if (n=11) or (n=12) or (n=13) or (n=14) then s:='лет' else
     begin
       n:=n mod 10;
       case n of
       0:s:='лет';
       1:s:='год';
       2:s:='года';
       3:s:='года';
       4:s:='года';
       5:s:='лет';
       6:s:='лет';
       7:s:='лет';
       8:s:='лет';
       9:s:='лет';
      end;
  end;
writeln('Мне ',n1,' ',s);
end.

Пример ввода:
18
Пример вывода:
Мне 18 лет
0,0(0 оценок)
Ответ:
verona911
verona911
25.09.2022 08:00
{0 - умножить на 2; 1 - прибавить 1}

5: 001 {1 - 2 - 4 - 5}
50: 0100010 {1 - 2 - 3 - 6 - 12 - 24 - 25 - 50}
99: 010000101 {1 - 2 - 3 - 6 - 12 - 24 - 48 - 49 - 98 - 99}

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