Фишки. Требуется вывести последовательность номеров клеток, с которыми совершается действие - C#

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Фишки. Требуется вывести последовательность номеров клеток, с которыми совершается действие»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
 
static class Program
{
    static List<int> Log = new List<int>();
 
    static void Main()
    {
        try
        { 
            int n = int.Parse(File.ReadAllText("input.txt"));
            for (int i = n; i >= 1; i -= 2) Set(i, 1, true);
            File.WriteAllText("output.txt", String.Join(" ", Log));
        }
        catch (Exception e)
        {
            File.WriteAllText("output.txt", "Error: " + e.Message, Encoding.Default);
        }
    }
 
    static void Set(int Position, int Add, bool Main = false)
    {
        if (Position > 1)
        {
            Set(Position - 1, 1);
            Log.Add(Add * Position);
            if (!Main) Set(Position - 1, -1);
        }
        else Log.Add(Add);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы