Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Menox
2 / 2 / 1
Регистрация: 29.10.2014
Сообщений: 12
#1

Укорачивание последовательности до тех пор, пока это возможно - C#

18.05.2015, 17:54. Просмотров 342. Ответов 1
Метки нет (Все метки)

Дана последовательность a с элементами из множества {0,1}. Проводятся следующие действия. Если a имеет вид 1,0,1,… , то она укорачивается на первые три элемента. В противном случае начальный элемент последовательности переносится в её конец. Указанные действия повторяются до тех пор, пока имеется возможность укоротить текущую последовательность.Требуется составить рекурсивную программу, имитирующую эти действия и возвращающую по исходной последовательности a результирующую последовательность b или сообщение, что b - пустое множество.

Описать методы для выполнения следующих заданий двумя способами: через цикл и используя механизм рекурсии.

Через цикл я сделал, вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
static void Main(string[] args)
        {
            string a = "1 0 1";
            Console.WriteLine("Введите размерность массива: ");
            int n = Convert.ToInt32(Console.ReadLine());
            int[] array = new int[n];
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Введите " + i + "-й элемент массива");
                array[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < n; i++)
            {
                Console.Write(array[i] + " ");
            }
            Console.WriteLine();
            string s = String.Join(" ", array);
            Console.WriteLine("Полученный массив:");
            if (!(s.Contains(a))) 
            {
            int[] temp = new int[n];
            for (int i = 0; i < array.Length; i++)
            {
                if (i != (array.Length - 1))
                    temp[i] = array[i + 1];
                else
                    temp[i] = array[0];
            }
            array = temp;
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write(array[i] + " ");
            }
            Console.WriteLine();
            }
            while (s.Contains(a))
            {
                s = s.Remove(0, 6);
                Console.WriteLine(s);
            }
            
            Console.ReadKey();
        }
Надо сделать используя механизм рекурсии
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2015, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Укорачивание последовательности до тех пор, пока это возможно (C#):

Обработка исключений до тех пор, пока код не будет успешно выполнен - C#
Есть метод для определения точного времени. public static DateTime GetNetworkTime() { //default Windows time...

Добавлять строку в список до тех пор, пока не введена пустая строка - C#
Входные данные: пользователь вводит с консоли произвольное количество строк. Формат одной строки: одно шестизначное число. Ввод...

Блокировать текущий поток до тех пор пока выполняются одновременно несколько остальных - C#
Есть кусочек кода for (int i = 0; i &lt; str1.Length - 1; i++) { int j = i; ...

Целую часть последовательно делить на 2 до тех пор, пока частное не станет равно одному - C#
дано число 68,74 Надо: целую часть последовательно делить на 2 до тех пор, пока частное не станет равно одному, и остатки записать в...

Считать произведение чисел до тех пор, пока не будет введено число, по модулю больше, чем 5 - C#
Написать программу, которая будет вводить числа и считать их произведение до тех пор, пока не будет введено число, по модулю больше, чем 5

.NET 4.x Сделать так, чтобы поиск продолжался до тех пор, пока в тексте не перестанет находиться слово - C#
Как сделать так чтобы поиск продолжался до тех пор, пока в тексте не перестанет находится слово?) Например текст: &quot;слово1 слово2 слово3...

1
memphis
627 / 190 / 33
Регистрация: 12.12.2012
Сообщений: 383
18.05.2015, 23:39 #2
Удаление и перенос элементов последовательности
Конвейер
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2015, 23:39
Привет! Вот еще темы с ответами:

Как сделать так что бы цикл продолжался до тех пор пока будет выведено 5 корректных результатов? - C#
как сделать так что бы цикл продолжался до тех пор пока будет выведено 5 корректных результатов, а затем автоматически прекращал свою...

Блокировка системы приложением до тех пор, пока в него не будет введена информация - C#
Доброго времени суток! Не подскажете, возможно ли сделать так: запускается приложение, проверяется условие, после чего, в зависимости...

При воспроизведении текста программа зависает до тех пор, пока текст не закончится - C#
Встроил в программу синтезатор речи. Говорит, всё нормально, но возникли проблемы. При воспроизведении текста программа зависает до тех...

Как сделать так,чтобы у меня запрашивало элементы массива до тех пор пока не будет введено верное значение типа double... - C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace masivi1 { class Program ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.