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

язык программирования Python


язык программирования Python

Показать ответ
Ответ:
SabrinaSirotina
SabrinaSirotina
21.03.2020 23:06
Используем бэктрекинг (англ. backtracking - обратное прослеживание).
Необходимо оставить противнику 1 фишку с тем,  чтобы он был вынужден взять её и проиграть. Для этого надо самому иметь позицию, в которой имеется от 2 до 5 фишек (чтобы взяв допустимый 1-4 фишки, оставить одну).
Чтобы вынудить противника оставить 2-5 фишек, надо создать ему позицию с 6 фишками (6-1=5, 6-4=2).
Позицию с 6 фишками мы можем создать, имея 7-10 фишек.
Исходное количество фишек -  11. Если первый ход у противника, он забирает от 1 до 4 фишек и предоставляет нам как раз необходимые для выигрыша 7-10 фишек.
Итак, при первом ходе противника нашей стратегией будет оставить противнику шесть фишек, а затем одну.
Если первый ход наш, то при правильной игре противника выигрыш невозможен. При неправильной - стараться перейти к выигрышной стратегии (6 и 1 фишка).
0,0(0 оценок)
Ответ:
aruzhan152
aruzhan152
28.01.2020 08:19
Написал программу с комментариями, сами составите алгоритм
int main () {
const int n = 10;
int massive[n];
int maxElem;
int numberOfMaxElem;
for(int i=0;i<n;++i) {
   cin>>massive[i]; // вводим массив из 10 элементов
}
maxElem = massive[0]; // максимальный элемент - первый, присваиваем 
for(int i=0;i<n;++i) {
    if(massive[i]>maxElem) { // если максимальный элемент меньше
        maxElem = massive[i];//чем данный, то данному присваеваем //максимальный  
        numberOfMaxElem = i; //определяем номер макс элемента
    }
}
int multElemBeforeMax;
for(int j=0;j<numberOfMaxElem;++j) { 
   multElemBeforeMax *= massive[j]; // произведение элементов до максимального
}
int countElemBehindMax;
countElemBehindMax = n-numberOfMaxElem; // кол-во элементов после максимального
cout <<multElemBeforeMax; // вывод на экран
cout <<countElemBehindMax;
return 0;
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота