Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.07.2014, 19:03
Интересующийся
Отправить личное сообщение для staseward Посмотреть профиль Найти все сообщения от staseward
 
Регистрация: 17.07.2014
Сообщений: 14

Помогите решить задачку.. не въеду никак..
Если мы из корректно записанного арифметического выражения, содержащего числа, знаки операций и открывающие и закрывающие круглые скобки выбросим числа и знаки операций, а затем запишем оставшиеся в выражении скобки без пробелов между ними, то полученный результат назовем правильным скобочным выражением [скобочное выражение "(()(()))" - правильное, а "()(" и "())(" - нет].
Найти число правильных скобочных выражений, содержащих N открывающихся и N закрывающихся скобок. N вводится с клавиатуры. N неотрицательное целое число.

Пример:
N = 1 (по одной скобке открывающейся и закрывающеся) - ответ 1
()
)(
))
((
Только один правильный вариант

Для введенного числа 2 - 2 :
()()
(())
То есть только два варианта, когда все открытые скобки правильно открываются/закрываются.
И так далее.


И вот еще одна...
Find the sum of the digits in the number 100! (i.e. 100 factorial)
{Correct answer: 648}

Последний раз редактировалось staseward, 17.07.2014 в 19:43. Причина: Дополненна
Ответить с цитированием
  #2 (permalink)  
Старый 17.07.2014, 21:31
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

берешь строку и делаешь по ней цикл + создаешь 4 переменные:
1) числовая переменная. в ней будет храниться кол-во открывающих скобок;
2) числовая переменная. в ней будет храниться кол-во закрывающих скобок;
3) числовая переменная. в ней будет храниться разность между открывающимися и закрывающимися скобками, по умолчанию равно 0. т.е если скобка открывающаяся, то значение этой переменной увеличиваем на 1, если закрывающая то уменьшаем на 1.
4) булева переменная, в которой будет храниться результат на верность выражения, по умолчанию true. каждый раз когда скобка закрывается, необходимо проверять (3) переменную на отрительное значение, если оно отрицательное, то выражение неверное. и переменную присваиваем значение false

делаем цикл по строке, если символ равен "(" или ")" то увеличиваем (1) или (2) переменную на 1. и увеличиваем или уменьшаем (3) переменную в зависимости от скобки. также в конце надо проверить (3) переменную - если она равна нулю - то выражение верное, иначе нет.

удачи)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку на jQuery. Готов заплатить. shevgeny Javascript под браузер 1 05.05.2014 12:07
Помогите решить задачку. Андрей_ Javascript под браузер 3 26.06.2012 16:21
Помогите решить задачку reddragon934 Общие вопросы Javascript 4 27.01.2012 11:43
Помогите решить задачку (Простую но непонятную) Suharik Элементы интерфейса 15 01.06.2010 22:30
Помогите решить задачку valero Элементы интерфейса 10 07.03.2010 16:41