Рекурсия в программировании. Очередная олимпиадная задача

Все ссылки на статьи и ролики моего сайта 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 .

Рекурсия в программировании. Очередная олимпиадная задача

Больше интересных статей здесь: Спорт.

Источник статьи: Рекурсия в программировании. Очередная олимпиадная задача.