|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||||||||||||||||
Распарсить выражение, состоящее из чисел, скобок и знаков сложения и вычитания, и вывести результат05.11.2014, 20:11. Показов 18116. Ответов 31
Метки нет (Все метки)
Сложение и вычитание
Выведите значение заданного арифметического выражения, состоящего из чисел, скобок и знаков сложения и вычитания. Формат входных данных В первой строке входного файла задано выражение, состоящее из чисел, скобок и знаков бинарных операций. Каждое число в выражении — это целое неотрицательное число в промежутке от 0 до 10000, включительно, записанное без ведущих нулей. Скобки бывают открывающие (`(') и закрывающие (`)'). Операции задаются символами `+' и `-'. Гарантируется, что заданное выражение математически корректно, и результаты всех промежуточных операций — целые числа, не превышающие по модулю 10000. Выражение не содержит каких-либо других символов, в частности, пробелов. Длина выражения не меньше 1 и не больше 1000 символов Учтите, что операции при отсутствии скобок выполняются слева направо. Например, выражение a - b - c вычисляется как (a - b) - c. Формат выходных данных В первой строке выходного файла выведите одно число — значение заданного выражения. Примеры
Добавлено через 48 минут Я придумал такой алгоритм. Сохранить арифметическое выражение в массив символов, запоминая при этом позиции открывающихся и закрывающихся скобок. Потом начать вычисления с самой правой открывающей скобки до закрывающей скобки. Затем пойти налево и сосчитать все выражения в скобках. Ну а потом уже сосчитать выражения без скобок. Только я не представляю, как идентифицировать знаки '+' и '-', да и к тому же надо как-то конвертировать символы в числа, как это сделать я не понимаю и не воображаю... Добавлено через 14 минут Вот начало:
![]() Добавлено через 19 минут
0
|
|||||||||||||||||||||
| 05.11.2014, 20:11 | |
|
Ответы с готовыми решениями:
31
Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков Напишите программу, которая вычисляет выражение, состоящее из чисел, знаков (допускаются знаки «+», «–», «*» и Распарсить арифметическое выражение и вывести результат |
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 07.11.2014, 17:02 | |
|
По моим наблюдениям, в олимпиадных задачах неаккуратный ввод/вывод относительно часто становится узким местом, так что, как минимум, sync_with_stdio false желательно ещё делать.
Добавлено через 2 минуты И, кстати, когда из операций только "+" и "-", их можно считать знаками чисел, так что можно вообще парсить только числа и скобки.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 07.11.2014, 18:11 | |
|
1
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||
| 07.11.2014, 18:41 [ТС] | |||
![]()
0
|
|||
|
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
|
|
| 07.11.2014, 18:44 | |
|
Dennis Ritchie, обязательно как-нибудь вспомню. Даже запишу, а то вдруг (НЕ ДАЙ БОХ) забуду повспоминать
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
| 07.11.2014, 18:50 [ТС] | |
|
0
|
|
|
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
|
|
| 07.11.2014, 18:56 | |
|
Dennis Ritchie, обязательно. Ну, а вы, как ярый сторонник производительности, отправляйтесь зубрить ассемблер. А то какие-то программы небыстрые у вас получаются
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||
| 07.11.2014, 19:00 [ТС] | ||
0
|
||
|
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
|
|
| 07.11.2014, 19:03 | |
|
Dennis Ritchie, тоже медленно. Выбросьте вообще эти медленные языки, чистый ассемблер, трестирующую систему тоже на ассемблере напишите. Думаю, тогда вы будете полностью довольны производительностью. Мне же хватает производительности и с использованием этих "жутко медленных" endl
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||
| 07.11.2014, 19:08 [ТС] | ||
|
0
|
||
|
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
|
|
| 07.11.2014, 19:12 | |
|
Dennis Ritchie, ну бегите, пишите...
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
| 07.11.2014, 19:13 [ТС] | |
|
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||
| 14.11.2014, 01:49 [ТС] | ||||||
|
Реализация обратной польской записи со стеком из книги Кернигана и Ритчи
0
|
||||||
| 14.11.2014, 01:49 | |
|
В строке записано арифметическое выражение, состоящее из идентификаторов, целых десятичных чисел, знаков операций и круглых скобок. Внутренними скоб
Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|