Как решить задачу о математической игре Баше? Суть задачи:
Есть N предметов, игроки по очереди берут от 1 до K предметов, выигрывает тот, кто возьмет последний предмет.
Задача в том, чтобы проанализировать сыгранную партию и для каждого хода определить правильный он или ошибочный. Ошибочный ход - если в этой ситуации можно было сходить иначе, гарантируя себе в дальнейшем выигрыш независимо от игры соперника. Правильный ход - это ход, который не является ошибочным.
К тому же, когда позиция проигрышная, то любой ход верный, т.к. его можно считать оптимальным в силу того, что результат всё равно проигрыш.Входные данные:
N, K, P - кол-во сделанных ходов игроками. P ходов.
(2 ≤ N ≤ 10000, 2 ≤ K ≤ 100, 2 ≤ P)Примеры:
Ввод
10 5 3
3
3
4
Вывод
F
F
T
Ввод
10 5 3
4
3
3
Вывод
Т
Т
T
Вот код, но не на все тесты он показывает правильный результат, не могу найти ошибку:

21 Авг 2019 в 06:12
169 +1
0
Ответы
1

// Функция для определения является ли текущий ход ошибочным
bool isWrongMove(int n, int k) {
if (n % (k + 1) == 0) {
return true;
} else {
return false;
}
}

int main() {
int N, K, P;
cin >> N >> K >> P;

int totalMoves = 0;
for (int i = 0; i < P; i++) {
int currentMove;
cin >> currentMove;
totalMoves += currentMove;
if (isWrongMove(N - totalMoves, K)) {
cout << "F" << endl;
} else {
cout << "T" << endl;
}
}
return 0;

}

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 348 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир