Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 09.02.2020
Сообщений: 67

Без массивов

30.03.2020, 19:42. Показов 2052. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Максимальное время работы на одном тесте: 1 секунда
Дано натуральное число N и последовательность из N элементов. Требуется вывести эту последовательность в обратном порядке.

Примечание. В программе запрещается объявлять массивы и использовать циклы (даже для ввода и вывода).

Входные данные
В первой строке входных данных содержится натуральное число N (N ≤ 103). Во второй строке через пробел идут N целых чисел, по модулю не превосходящих 1000, – элементы последовательности.

Выходные данные
Требуется вывести заданную последовательность в обратном порядке.

Примеры
входные данные
2
3 4
выходные данные
4 3
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2020, 19:42
Ответы с готовыми решениями:

Перестановка цифр числа N (без массивов)
Здравствуйте. Нужно переставить цифри целого числа N так, чтобы получить наибольшее число. К примеру, есть число 27934, в нем нужно...

Вычислить значения функции без массивов
Суть задачи : вычислить значения функции, у=а/x+b/(x-1) у заданных точках, если коэффициенты а и b принимают значения a= 5,7,9; b =...

Задача без использования массивов и строк
Написать программу которая меняет порядок цифр в числе не используя массивы.

23
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 20:12
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void Main(string[] args)
        {
            string k = "qwe";
            revers(k);
            Console.Read();
        }
        public static void revers(string k)
        {
            if (k != "")
            {
                Console.Write(k[k.Length - 1]);
                k = k.Remove(k.Length - 1);
                revers(k);
            }
        }
Добавлено через 1 минуту
Надеюсь сможешь поправить под свою программу.

Добавлено через 3 минуты
Только вопрос, зачем нужна 1 строка?
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
30.03.2020, 20:18
Цитата Сообщение от Korsner Посмотреть сообщение
Только вопрос, зачем нужна 1 строка?
лишняя информация
Цитата Сообщение от Korsner Посмотреть сообщение
Надеюсь сможешь поправить
введите "1 23 456" и поймете что вывод должен быть "456 23 1"
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 20:21
Цитата Сообщение от Enifan Посмотреть сообщение
введите "1 23 456" и поймете что вывод должен быть "456 23 1"
Согласен, нужно добавить проверку по пробелам. А так как циклы нельзя, нужен ещё один рекурсивный метод который будет возвращать количество символов с конца строки до пробела.
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 20:39
Цитата Сообщение от Korsner Посмотреть сообщение
Только вопрос, зачем нужна 1 строка?
Первая строка определяет сколько чисел должно быть во второй строке. И эту строку тоже нужно создать и вывести без циклов.
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
30.03.2020, 20:43
Цитата Сообщение от chumich Посмотреть сообщение
И эту строку тоже нужно создать и вывести
Цитата Сообщение от egyptni Посмотреть сообщение
выходные данные
4 3
судя по выходным данным - не надо
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 21:14
Цитата Сообщение от Enifan Посмотреть сообщение
судя по выходным данным
На выходе - нет, а на входе, по-моему - да:
Цитата Сообщение от egyptni Посмотреть сообщение
входные данные
2
3 4
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
30.03.2020, 21:22
Цитата Сообщение от chumich Посмотреть сообщение
а на входе, по-моему - да:
обычный Console.ReadLine() и строка сама в консоли отобразится, ее даже сохранять никуда не нужно. проку от нее ?
Если данное значение поможет в логике рекурсии - то еще есть прок, однако строить логику с данной переменной или без нее - это уже решать не сайту, который будет данный код обрабатывать.
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 21:33
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
45
46
47
48
49
50
static int count = 0;
        static void Main(string[] args)
        {
            string k = "1 27 345";
            if (k.Length != 0)
            {
                revers(k);
            }
            Console.Read();
        }
 
        public static void revers(string k)
        {
            if (k != "")
            {
                count = 0;
                counters(k);
                if (k[k.Length - 1] == ' ')
                {
                    k = k.Remove(k.Length - 1, 1);
                }
                if (count != 0)
                {
                    Console.Write(k[k.Length - count]);
                    k = k.Remove(k.Length - count, 1);
                }
                else
                {
                    Console.Write(" ");
                }
                revers(k);
            }
        }
 
        public static void counters(string k)
        {
            if (k != "")
            {
                if (k[k.Length - 1] != ' ')
                {
                    count++;
                    k = k.Remove(k.Length - 1);
                    counters(k);
                }else if (k.Length == 1)
                {
                    count = 1;
                    k = k.Remove(k.Length - 1);
                }
            }
        }
Это с учётом того, что строка разделена пробелами.

Добавлено через 2 минуты
Всегда у меня были проблемы с рекурсией, но с такой простой я справился...
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 21:41
Цитата Сообщение от Enifan Посмотреть сообщение
обычный Console.ReadLine()
А кто сказал про ReadLine? Рассудить может, наверно, только ТС, но, по-моему задача состоит в том, чтобы:
1) Рандомно задать число n от 1 до 103 и вывести его;
2) без циклов соорудить строку из n рандомных чисел меньших 1000, разделенных пробелами и вывести ее;
3) опять же без циклов и массивов реверсировать строку и вывести ее.
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 21:44
Цитата Сообщение от chumich Посмотреть сообщение
1) Рандомно задать число n от 1 до 103 и вывести его;
Это число скорее всего нужно только для генерации входной строки. Это единственное объяснение лично для меня.
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
30.03.2020, 22:03
Цитата Сообщение от chumich Посмотреть сообщение
по-моему задача состоит в том, чтобы:
если так рассуждать, то возможно. Только я не вижу взаимосвязи между 1 и 2 строкой. Это совершенно разные задачи.
Это все равно что записать первые 50 чисел Фибоначчи в массив, а потом найти в нем простые натуральные числа. Это 2 разные задачи, которые отношение друг к другу не имеют.
Пусть ваша версия будет верной, но как бы там не было, 1-ая строка является нелепостью данной задачи, при условии что значение N не участвует в рекурсии.
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 22:05
Цитата Сообщение от Enifan Посмотреть сообщение
1-ая строка является нелепостью данной задачи, при условии что значение N не участвует в рекурсии.
А есть идеи как сделать чтобы участвовало?
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 22:32
Цитата Сообщение от Enifan Посмотреть сообщение
нелепостью данной задачи
Не совсем понимаю, при чем тут нелепость, если это число задает количество чисел в строке? По-моему, это определяющая часть задачи. И оно непосредственно участвует в рекурсии при создании строки, как бы задавая количество ее циклов.
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 22:35
Цитата Сообщение от chumich Посмотреть сообщение
Не совсем понимаю, при чем тут нелепость, если это число задает количество чисел в строке? По-моему, это определяющая часть задачи. И оно непосредственно участвует в рекурсии при создании строки, как бы задавая количество ее циклов.
Исходя из задачи поставленной автором, нам не нужно создавать строку, а значит и это число не нужно, вот и всё. Если бы задача стояла создать строку, то другое дело.
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 23:24
Цитата Сообщение от Korsner Посмотреть сообщение
Исходя из задачи поставленной автором, нам не нужно создавать строку
Если бы это было так, то не нужно было бы никаких рекурсий - просто, не объявляя массивов, использовать Split и Reverse. Весь код в паре строк:
C#
1
2
string s = Console.ReadLine();
Console.WriteLine(String.Join(" ",s.Split().ToArray().Reverse()));
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 23:29
Цитата Сообщение от chumich Посмотреть сообщение
Если бы это было так, то не нужно было бы никаких рекурсий - просто, не объявляя массивов, использовать Split и Reverse. Весь код в паре строк:
У строки нет метода Reverse, ты только что создал массив чаров и к этому массиву применил метод Reverse.
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 23:36
Цитата Сообщение от Korsner Посмотреть сообщение
У строки нет метода Reverse, ты только что создал массив чаров и к этому массиву применил метод Reverse
Даже удивительно, как же оно получилось? Наверно, фотошоп...
Изображения
 
0
34 / 25 / 11
Регистрация: 19.03.2020
Сообщений: 353
30.03.2020, 23:38
Цитата Сообщение от chumich Посмотреть сообщение
Даже удивительно, как же оно получилось? Наверно, фотошоп...
Так я не говорю что это не работает, ты понимаешь что делает вот это?
C#
1
Console.WriteLine(String.Join(" ",s.Split().ToArray().Reverse()));
А конкретно вот это:
C#
1
ToArray()
Ещё раз повторю у строки нет метода Reverse, он есть у массива.
Специально ссылочка для тебя ТЫК
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
30.03.2020, 23:45
Цитата Сообщение от Korsner Посмотреть сообщение
Так я не говорю что это не работает
Так раз работает, в чем проблема?
Цитата Сообщение от chumich Посмотреть сообщение
Если бы это было так, то не нужно было бы никаких рекурсий - просто, не объявляя массивов, использовать Split и Reverse. Весь код в паре строк
Что здесь было сказано не так?
Цитата Сообщение от egyptni Посмотреть сообщение
запрещается объявлять массивы
А не использовать их, не объявляя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2020, 23:45
Помогаю со студенческими работами здесь

Составить программу (без использования массивов)
Составить программу (без использования массивов), в которой в числовую переменную N вводят ненулевые целые числа. Количество вводимых ...

Поворот фигуры без использования вспомогательных массивов
Есть класс фигура,в нем есть функции urotate и rotate в них фигура поворачивается на 180 градусов подскажите как переписать без...

Реализовать IList<T> без использования массивов и списков
Нужно реализовать IList&lt;T&gt; без использования массивов и списков. Искал где только мог, конкретного примера реализации не нашёл, киньте...

Найти n-ое число Фибоначчи без массивов и циклов
Учитывая положительное число n. Найти n-е число последовательности. Вот последовательность:0 1 1 2 3 5 8 13. Программа запрещено объявлять...

Как найти усредненное и минимальное значение функции без массивов?
y=e^x*(1-(sin3x)^3) на отрезке х є если х изменяется с шагом h=0.3


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru