|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||||||||||||||||
Распарсить выражение, состоящее из чисел, скобок и знаков сложения и вычитания, и вывести результат05.11.2014, 20:11. Показов 18218. Ответов 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 | |
|
В строке записано арифметическое выражение, состоящее из идентификаторов, целых десятичных чисел, знаков операций и круглых скобок. Внутренними скоб
Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|