Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
rayJIB
0 / 0 / 0
Регистрация: 27.06.2014
Сообщений: 9
#1

Найти все варианты размещения знаков операций +,-,* на месте вопросов в выражении 1?2?3?4?5?6?7?8?9=100 - C++

27.06.2014, 15:03. Просмотров 1438. Ответов 18
Метки нет (Все метки)

Составить программу, которая бы нашла все варианты размещения знаков арифметических операций +,-,* на месте вопросительных знаков в выражении 1?2?3?4?5?6?7?8?9, что значение этого выражения равнялось бы 100. Арифметические действия выполняются слева направо, а не по обычному приоритету.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2014, 15:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти все варианты размещения знаков операций +,-,* на месте вопросов в выражении 1?2?3?4?5?6?7?8?9=100 (C++):

Рассчитать все возможные варианты для 3 знаков - C++
Дано: 1 2 0 Найти все возможные комбинации 10 разрядного числа (пример: 1021020021) и чтобы можно задавать разные условия для кол-ва...

Варианты размещения восьми ферзей на шахматной доске - C++
Само задание: Найти все варианты размещения восьми ферзей на шахматной доске таким образом, чтобы никакие две фигуры не размещались на...

Объясните последовательность операций в выражении - C++
Вот пример: int i = 5, j = 12, k = 7; k = (--i + 2 * j - k++, j-- + i - k); почему в ответе получается 8?

Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 - C++
Вычисления проводятся слева-направо, ни одна операция не имеет приоритета. Добавлено через 2 минуты задача вынесла моск, прошу помочь

Найти все варианты размещения знаков арифметических операций на месте вопросительных знаков в выражении - C (СИ)
Составить программу, которая бы нашла все варианты размещения знаков арифметических операций +,-,* на месте вопросительных знаков в...

Найти все варианты решения 3*x – 2*y+5*z=28 уравнения на отрезке х, у, z [-100;100] - PascalABC.NET
Решить с помощью "For"

18
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.06.2014, 13:42 #16
Цитата Сообщение от Sonance Посмотреть сообщение
Объясните пожалуйста функцию print_variants_for_add_subtr_mult()
Она рекурсивная, накапливает в своих аргументах числовой и строковый результаты. Если в конце числовой результат равен желаемому, то печатает строковый.
0
Sonance
6 / 6 / 3
Регистрация: 15.02.2013
Сообщений: 56
29.06.2014, 15:56 #17
Цитата Сообщение от Mr.X Посмотреть сообщение
Она рекурсивная, накапливает в своих аргументах числовой и строковый результаты. Если в конце числовой результат равен желаемому, то печатает строковый.
Спасибо, посмотрел что такое рекурсия, нашел факториал с её помощью. В случае с факториалом все просто, можно сказать интуитивно понятно, но в данном случае все как то путается, объясните пожалуйста ход мыслей при разработке программы для данной задачи.
0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.06.2014, 17:41 #18
Цитата Сообщение от Sonance Посмотреть сообщение
объясните пожалуйста ход мыслей при разработке программы для данной задачи
Каждая функция вызывает три (по числу возможных различных операторов в каждой позиции), т.е. получаем троичное дерево вызовов высотой 8 (по числу операторов в выражении). Каждая ветвь дерева соответствует одному из вариантов расстановки операторов.
2
Sonance
6 / 6 / 3
Регистрация: 15.02.2013
Сообщений: 56
29.06.2014, 18:34 #19
Верно я понял?
Контейнер deque - это стек;
при каждом вызове функции - из стека достается 1 элемент, размер стека уменьшается на 1, и функция вызывает сама себя 3 раза(для каждой операции), уже с меньшим стеком и так пока стек не опустеет

И еще вопрос: есть ли какие-то преимущества у этого способа, перед алгоритмами не использующими рекурсию. В консоли алгоритм с рекурсией работает заметно медленнее, чем без неё.

P.s. Возможно глупые вопросы задаю, но хотелось бы разобраться. Просто я рекурсивный алгоритм впервые вижу. Интересный способ.
0
29.06.2014, 18:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2014, 18:34
Привет! Вот еще темы с ответами:

Программа должна подставить за место вопросов знак и вывести все варианты в консоли - C#
Ребята нужна помощь. Дано: 1?2?3?4=х За место х пользователь подставляет число. Программа должна подставить за место вопросов знак и...

Множества: удалить из массива все повторные вхождения цифр и знаков арифметических операций - Delphi
Привет всем, помогите пожалуйста, не могу никак закончить. Уже пробовал и рекурсией и всем чем только можно. function...

Квадрат размером 100*100 уменьшается до 10*10. На его месте появляется круг и увеличивается, достигая 100 в диаметре - Delphi
Квадрат размером 100*100 уменьшается до 10*10. На его месте появляется окружность и увеличивается, достигая 100 в диаметре, и т.д.

Построить множество встречающихся в последовательности знаков арифметических операций и знаков препинания - Pascal ABC
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru