2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Рекурсия арифм. выражений.
Сообщение18.09.2016, 23:09 
Я короче сломал себе всю голову, но так и не могу понять... Может быть кто-то может помочь.
На вход заходит строка, в которой только цифры (ну т.е. числа),+,-,*. Я не понимаю как посчитать это выражение рекурсивно.
Вся проблема с приоритетом. * же старше. Вот я и не понимаю как бы посмотреть на выражение 1+2+3+4*5+6+7*8+9 .
Спасибо.
Привет.

 
 
 
 Re: Рекурсия арифм. выражений.
Сообщение19.09.2016, 01:01 
Одно из самых простых — алгоритм сортировочной станции (shunting-yard algorithm).

 
 
 
 Re: Рекурсия арифм. выражений.
Сообщение19.09.2016, 01:21 
Добавлю ещё преобразование в обратную польскую запись https://ru.wikipedia.org/wiki/Обратная_польская_запись.
Сама обратная польская запись вам не нужна, а нужен алгоритм, который пропускает выражение через стек с учётом приоритетов операций (это и есть shunting-yard algorithm).

-- 19.09.2016, 01:22 --

Вот хорошее изложение на русском: https://habrahabr.ru/post/100869/.

 
 
 
 Posted automatically
Сообщение19.09.2016, 02:24 
Аватара пользователя
 i  Тема перемещена из форума «Программирование» в форум «Карантин»
по следующим причинам:

- отсутствуют собственные содержательные попытки решения задач(и).

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group