Регистрация
Войти
Стать экспертом Правила
Информатика

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

ОТВЕТЫ

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
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам