
Леонид
5 год назад
ФишкиДана полоска из клеток, пронумерованных от 1 до N слева направо. Разрешено снимать или ставить фишку на клетку с номером 1 или на клетку, следующую за самой левой из установленных фишек (правее неё), если она пуста. Изначально полоска пуста. Нужно разместить фишки во всех клетках.Входные данныеПрограмма получает на вход количество клеток в полоске N(1≤N≤10).Выходные данныеПрограмма должна вывести последовательность номеров клеток, с которыми совершается действие. Если фишка снимается, то номер клетки должен выводиться со знаком минус. Количество действий не должно превышать 104. Если существует неКак узнать сколько возможных решений задачи, то разрешается вывести любое.ПримерыВвод3Вывод1 2 -1 3 1
ОТВЕТЫ

Агафон
Oct 24, 2020
void F(int n, int i, const bool first = false)
{
if (n > 0)
{
F (n - 1, i - 1);
cout << i << " ";
if (!first)
F(n - 1, 1 - n);
else
F(n - 2, n - 2);
}
}
int main()
{
cin >> n;
F(n, n, true);
return 0;
}
512
Смежные вопросы: