|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.03.2018, 11:22 | #1 |
Новичок
Джуниор
Регистрация: 08.03.2018
Сообщений: 2
|
Расставить между цифрами знаки арифметических операций
Паскаль АВС. Для заданного набора целых чисел без знака расставить между ними знаки сложения, вычитания, умножения и целого деления так, чтобы результат полученного арифметического выражения был равен заданному числу. Вывести все возможные варианты и подсчитать их.
|
08.03.2018, 12:22 | #2 |
Новичок
Джуниор
Регистрация: 08.03.2018
Сообщений: 2
|
Для 2 операций (сложение и вычитание) ещё можно похожее найти, а для 4 никак не получается.
Var n , i , j : longint; a : array[1..25] of integer; res , s : integer; found : boolean; Function getBit(i , j : longint) : longint; Begin if (i and (1 shl j)) <> 0 then getBit := 1 else getBit := 0; End; Begin Read(s); n:=10; for i := 1 to n do a[i]:=i; for i := 0 to (1 shl (n - 1)) - 1 do begin res := a[1]; for j := 0 to n - 2 do if getBit(i , j) = 0 then res := res + a[2 + j] else res := res - a[2 + j]; if res = s then begin Write(a[1]); for j := 0 to n - 2 do if getBit(i , j) = 0 then Write('+' , a[2 + j]) else Write('-' , a[2 + j]); found := true; WriteLn('=' , s); break; end; end; if not found then WriteLn('No solution'); End. |
08.03.2018, 13:39 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если добавить умножение и деление, то сложность решения на порядок возрастет, поскольку еще приоритеты операций всплывут. И если не можешь просто со сложением и вычитанием, то прямая дорога в раздел Фриланс, может кто и сделает за вознаграждение ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.03.2018, 00:59 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
готовое решение подобной задачи есть в теме Арифметические действия с цифрами числа
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Расставить между ними знаки + и - так, чтобы значение получившегося выражения было равно заданному целому S | apethegod | Помощь студентам | 1 | 23.12.2017 13:20 |
Калькулятор логических/арифметических операций | doojkee | Общие вопросы C/C++ | 6 | 08.04.2012 19:28 |
тяжелая, но интересная задача: Дано 3 числа. Между ними можно ставить знаки операций: сложения, вычитания, умножения, деления | ВДПУ | Помощь студентам | 2 | 25.02.2012 19:59 |
программа проверяющую знания арифметических операций | Demon_en | Помощь студентам | 4 | 07.11.2011 07:35 |
Деление без арифметических операций | imera | Общие вопросы C/C++ | 2 | 14.11.2008 03:02 |