Все ссылки на статьи и ролики моего сайта Old Programmer расположенные по темам тут. А здесь все мои ресурсы по рекурсивному программированию.
Еще одна задача из моего архива олимпиадного программирования.
Олимпиадная задача "Игра в числа"
Условие
Пусть дано число N и число M (M<N). Два игрока, назовем их А и В, играют в следующую игру. Каждый из игроков по очереди называет число от 1 до M. Названные числа складываются. Выигрывает тот из игроков, чей очередной ход даст в результате сумму равную N., например, N=10, M=5. А–4, В-2, А-4, т.о.
Обратите внимание: Россия-Венгрия. Очередная невнятная игра..
игрок А выиграл. Написать программу, которая на входе содержит числа N M (входной поток содержит в первой строке два числа через пробел), а на выходе (в выходном потоке) выдает все возможные варианты игры игроков А и В, в которых выигрывает А (А начинает играть). Не должны учитываться неправдоподобные варианты, когда игрок может выиграть за один ход, но не делает это. Например, при N=10, M=5 не должен учитываться вариант А-4, В-2, А-2, В-2.Примеры
При входных значениях 8 6
Имеем на выходе
1 1 6
1 2 5
1 3 4
1 4 3
1 5 2
1 6 1
При входных параметрах 6 2
Получим
1 1 1 1 2
1 1 1 2 1
2 2 2
Решение
Решение представлено в программе chi4000.c. Типичная рекурсия.
До следующих встреч. Думаем и пишем рекурсивно. Подписываемся на мой сайт Old Programmer .
Больше интересных статей здесь: Спорт.
Источник статьи: Рекурсия в программировании. Очередная олимпиадная задача.