Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.02.2023
Сообщений: 4

Расставить между членами последовательности знаки +, -, *, /, так, чтобы получилось заданное число

03.02.2023, 23:47. Показов 1031. Ответов 8

Студворк — интернет-сервис помощи студентам
Помогите решить задачу. Не понимаю как её решить.
Дана последовательность из N цифр. Необходимо расставить между ними знаки +, -, *, /, так чтобы получилось заданное число N0.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.02.2023, 23:47
Ответы с готовыми решениями:

Расставить знаки между цифрами чтобы получилось 100
Дан автобусный билет с номером, состоящим из N цифр. Расставить между цифрами знаки арифметических операций ('+', '-', '/', '*') и скобки...

Расставить знаки между цифрами так, чтобы получилось заданное число
Помогите разобраться с алгоритмом. Вот задача: Имеются цифры 1, 2, 3, 4, 5, 6, 7, 8, 9. Необходимо расставить между ними любое...

Рекурсивно расставить знаки операций так, чтобы получилось заданное число
Нужно между цифрами от 1 до 9 расставить знаки операций +,- так, чтобы получилось заданное число, из подряд идущих цифр можно составлять...

8
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
04.02.2023, 14:00
Что насчёт остатка от деления? Или, если уходить в вещественные - там ещё больше крайних случаев, в которых не понятно что делать, в том числе из за потерь точности.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
09.02.2023, 09:44
Karamelka23, полный перебор может помочь.
примерно, как здесь - Расставить знаки между цифрами чтобы получилось 100

Цитата Сообщение от Sun Serega Посмотреть сообщение
Что насчёт остатка от деления? Или, если уходить в вещественные - там ещё больше крайних случаев, в которых не понятно что делать, в том числе из за потерь точности.
Это очень правильные, хорошие и крайне уместные вопросы. Вот только не уверен, что ТС сможет на них ответить.
0
9 / 6 / 4
Регистрация: 06.12.2018
Сообщений: 29
09.02.2023, 11:38
Если утрировать и сделать ряд допущений, тогда так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// пример расставить действия чтобы получилось 14
// 2 ? 7 ? 2 ? 3 = 14
const c:array[0..3]of char=('+','-','*','/');
var 
  a: array[0..2] of integer;//действия
  b: array[0..2] of integer=(7,2,3);// цифры
  f: integer=2; // начальное значение
  h: integer=14; // конечное значение
  x,y:  integer;
  s:string;
 
begin
  for var j:=0 to round(4**(1+high(a)))-1 do
    begin
      for var k:=0 to high(a) do // брутально заполняю действия
        a[k]:=(j div round(4**k)) mod 4;
      x:=f;// начальное значение
      s:=inttostr(x);
      for var i:=0 to high(b) do
        begin          
          y:=b[i];
          case a[i]of
            0: begin x:=x+y; s:=s+c[a[i]]+y end;
            1: begin x:=x-y; s:=s+c[a[i]]+y end;
            2: begin x:=x*y; s:=s+c[a[i]]+y end;
            3: begin x:=round(x/y); s:=s+c[a[i]]+y end;
          end;    
        end;
    if x=h then writeln('good ',s,'=',h);// найденное значение
  end; 
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.02.2023, 13:37
IkarK, вы не учли вот такое:
дано 1 2 3 4
получить 119
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
09.02.2023, 14:06
Цитата Сообщение от JuriiMW Посмотреть сообщение
вы не учли вот такое:
можно ли объединять цифры в числа или нет - должно быть чётко оговорено в задании.
0
Заблокирован
09.02.2023, 17:23
Karamelka23, кодерский приоритет действий должен сохранятся? хотя ТС'у это уже похоже не интересно
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
09.02.2023, 17:44
Кодерский? Вы имеете в виду математический?
0
9 / 6 / 4
Регистрация: 06.12.2018
Сообщений: 29
09.02.2023, 18:56
Объединить цифры легко. Сложность алгоритма вырастет незначительно. Интересно было бы посмотреть на решение с произвольной расстановкой скобок.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// пример расставить действия чтобы получилось 119
// 1 ? 2 ? 3 ? 4 = 119
const c: array [0..4] of string=('+','-','*','/','');
var 
  a: array[0..3] of integer;//действия
  b: array[0..3] of integer=(1,2,3,4);// числа
  h: integer = 119; // конечное значение
  x,y,v: integer;
  s: string;
  
  procedure f;//  суммирование
  begin
    case v of
      0: begin x:=x+y end;
      1: begin x:=x-y end;
      2: begin x:=x*y end;
      3: begin x:=x div y end;
    end;  
  end;
  
begin
  for var j:=0 to round((high(c)+1)**high(a))-1 do
    begin
      for var k:=0 to high(a)-1 do // брутально заполняю действия
        a[k+1]:=(j div round((high(c)+1)**k)) mod (high(c)+1);       
      a[0]:=0; 
      x:=0;// начальное значение      
      y:=0;// слагаемое
      v:=0;// действие
      s:=inttostr(x);
      for var i:=0 to high(b) do      
          if a[i]=4 then 
            begin
              y:=y*10+b[i]
            end
            else
            begin  
              f;//  суммирование
              s:=s+c[v]+y;
              v:=a[i];
              y:=b[i];            
            end; 
    f;//  суммирование          
    s:=copy(s+c[v]+y,5,length(s+c[v]+y)-4);        
    if x=h then writeln(' -----------  ',s,'=',h);// найденное значение
  end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2023, 18:56
Помогаю со студенческими работами здесь

Можно ли расставить между цифрами знаки + и - чтобы получилось заданное число
Задана последовательность цифр. Определите, можно ли расставить между некоторыми из них знаки "+" и "-", так что бы...

Расставить знаки +/- среди заданного набора цифр так, чтобы результатом вычисления получилось заданное число
(Консольное приложение) Дано натуральное число m. Вставить между некоторыми цифрами 1,2,3,4,5,6,7,8,9 записанными именно в таком...

Между заданными числами расставить знаки сложения и вычитания так, чтобы в итоге получилось указанное число
Простая задачка из школьной олимпиады (задача на асмп №366). У меня превышает лимит времени. Если есть другие пути поделитесь пж ...

Расставить знаки в последовательности чисел, что бы получилось заданное число
Дана последовательность цифр. Необходимо расставить между ними знаки арифметических операций таким образом, чтобы получилось заданное...

В выражении расставить знаки арифметических операций, чтобы получилось заданное число
В арифметическом выражении 1*2*3*4*5 вместо звездочек расставить арифметические операции + , - , * , / так, чтобы получилось число...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru