Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/48: Рейтинг темы: голосов - 48, средняя оценка - 4.56
6 / 4 / 2
Регистрация: 09.01.2018
Сообщений: 59

Можно ли построить из заданного набора выражение, равное числу N

27.03.2019, 22:15. Показов 12134. Ответов 127

Студворк — интернет-сервис помощи студентам
В сборниках занимательных математических задач встречается такой тип задач, когда надо из заданных чисел и арифметических знаков составить выражение, дающее какое-то заданное число. Пример такой задачи: "Составьте из чисел 4, 1, 8, 7 и арифметических знаков выражение, равное 24". Ответом может служить такое выражение: "(8-4) * (7-1)". К сожалению, некоторые авторы допускают ошибки и предлагают нерешаемую задачу, поэтому их начальник обратился к программистам.

Необходимо написать такую программу, которая определяет, можно ли построить из заданного набора выражение, равное числу N или нет. Так как это только прототип, то достаточно написать программу, которая работает только с наборами из 4-х чисел, а число N всегда равно 24.

Допустимые арифметические операторы: сложение, вычитание, умножение, деление, скобки.

На входе: массив из 4-х целых чисел от 1 до 9.

На выходе: true (если из заданного набора можно построить выражение, равное 24) или false (если из заданного набора такого выражения построить нельзя).

Пример 1.

На входе: [4, 1, 8, 7]

На выходе: true

Пояснение: (8-4) * (7-1) = 24







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

Java
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
     int a, b, c, d;
     char x, y, z, e, q, w;
     a = 1;
     b = 2;
     c = 3;
     d = 4;
     int[] arr = new int[4];
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        arr[3] = 4;
     char[] charr = new char[6];
        charr[0] = '+';
        charr[1] = '-';
        charr[2] = '/';
        charr[3] = '*';
        charr[4] = '(';
        charr[5] =  ')';
 
            for (int i = 0; i < 4; i++) {
                a = arr[i];
                for (int j = 0; j < 4; j++) {
                    if (i != j) {
                        b = arr[j];
                        for (int k = 0; k < 4; k++) {
                            if (k != j & k != i) {
                                c = arr[k];
                                for (int l = 0; l < 4; l++) {
                                    if (l != j & l != k & l != i) {
                                        d = arr[l];
                                        for (int m = 4; m < 5; m++) {  // цикл символов
                                            for (int n = 0; n < 6; n++) {
                                                if (n != m ) {
                                                    for (int o = 0; o < 6; o++) {
                                                        if (o != n & o != m) {
                                                            for (int p = 0; p < 6; p++) {
                                                                if (p != o & p != n & p != m) {
                                                                    for (int r = 0; r < 6; r++) {
                                                                        if (r != m & r != n & r != o & r != p) {
                                                                            for (int s = 0; s < 6; s++) {
                                                                                if (s != m & s != n & s != o & s != p & s != r) {
                                                                                    System.out.println (charr[s] + a + charr[m]  );
 
 
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
 
 
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2019, 22:15
Ответы с готовыми решениями:

Проверить можно ли указанные слова составить из заданного набора букв
Добрый день! Помогите с заданием. Дана строка произвольных букв. Далее мы вводим 5 слов. Необходимо чтобы программа сопоставила буквы из...

Проверить, можно ли из заданного набора букв составить заданное слово
помогите пожалуйста составить программу, не знаю с чего начать. Двумерный массив n x m содержит некоторые буквы алфавита, ...

Определить, сколько прямоугольных треугольников можно создать из заданного набора точек
Помогите решить задачу. Дано множество точек на плоскости. Определить, сколько прямоугольных треугольников можно создать из этого...

127
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
11.04.2019, 21:12
Студворк — интернет-сервис помощи студентам
JavaDoc, честно говоря, я не знаю куда набирают. На курс какой-то с сертификатом мега-пуппер. Хорошая затея у парней, одобряю. Писал код без лямбд и менял их на enum, чтоб им было понятнее и с кодом могли разобраться. Возможно, много лишнего там делаю и можно сократить, но писал на скорую руку. Поэтому, если честно, можно и меньше кода гораздо. Но было бы любопытно взглянуть на решение другого человека, чтоб опыта взять... Всегда интересно, как человек решает задачи (как размышляет)... Поэтому , если будет настроение, напиши свой вариант, с радостью посмотрю
0
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
11.04.2019, 21:32
JavaDoc, нет, вроде как не на московский. Хотя, что в твоём понимании московский?
0
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 9
11.04.2019, 23:23
wolfbethowen, в пятницу
0
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
12.04.2019, 11:00
Цитата Сообщение от ArtemFM Посмотреть сообщение
Всегда интересно, как человек решает задачи (как размышляет)...
набор в минскую контору на курсы с возможным трудоустройством по итогу.. да,логика у каждого своя, но не совсем правильно выкладывать код когда "буря еще не прошла",а вот схематично представить вполне можно ..
0
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 9
12.04.2019, 19:25
Сходил на собеседование крайне положительные впечатления, адекватные как и эйчар так и будующий ведущий самих курсов. Неадекватных вопросов не задают, стараться помочь нежели завалить, так что если не пройду то это только мой косяк)
0
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
12.04.2019, 21:15
Dmitry_Barynov, так никто не говорил, что там валят. Да, наоборот, как мне показалась, меня вытягивал, задавал вопрос, но с помощью другой формулировки. Но мне кажется, что заданная задача - это очень легкое. Скорее всего, на самих занятиях спрос будет в разы выше и знаний надо в разы больше. Как и говорили, упор будет делаться на самостоятельность.
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
12.04.2019, 21:50
Timoved, Вот-вот, я бы не росслаблялся, а наоборот узнавал их приблизительную пограмму и готовился напаред. Я больше года назад проходил одни интенсивные курсы (ясно что в другом месте и городе) так там быстро и возможно поверхностно давали материал, и каждых пару дней тесты, надо было быстро схватывать и выкручиваться. По простому "взять людей чуть больше, всех бросить в воду и смотреть кто как всплывает" ))) Если "всплыл", даже если все не схватил, молодец, тебя с твоим уже доработаным резюме отправят в другое место, ты уже их проблема. Но то по видимому была фабрика разработчиков)
0
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
12.04.2019, 22:35
ViktorFX, так ведь расслабляться некогда. Приблизительную программу как-то непросто узнать. Разве что у них самих спросить. Там упор будет на самостоятельность: сам найди, сам разберись. Будут только поставлены задачи, которые нужно выполнять. Возможно, можно будет задавать вопросы преподавателю вне понедельника. Но тут как пойдёт. Если только день контактов сугубо понедельник, то повезет, что будет нормальная группа и друг другу в чём-то можно будет помочь. Я имею в виду, даже не друг другу, а кто-либо из сильных сможет так или иначе помочь более слабым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2019, 22:35

Сколькими способами гирями заданного набора можно составить вес в v грамм
Имеются 10 гирь весом 100, 200, 300, 500, 1000, 1200, 1400, 1400, 1500, 2000 и 2000г. Сколькими способами гирями этого набора можно...

Пирамиду какой наибольшей высоты можно построить из набора блоков
Замечание В приведенном примере пирамида будет состоять из двух блоков: нижним будет блок с номером 3, а верхним – блок с номером 2. Блок...

Сколькими способами гирями заданного набора весов можно составить вес в v грамм?
Имеются 10 гирь весом 100, 200, 300, 500, 1000, 1200, 1400, 1500, 2000, 3000 г. Сколькими способами гирями этого набора можно составить вес...

Строки. Напечатать все пары символов, которые можно из заданного набора составить
Пусть имеется набор символов ai, a2,.....,an. Составить программу, которая позволит напечатать все пары символов, которые можно из этого...

Указать минимальное количество первых букв, по которым можно различить слова из заданного набора
Указать минимальное количество первых букв, по которым можно различить слова из заданного набора(слова разделены пробелами) Вообщем,...


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

Или воспользуйтесь поиском по форуму:
128
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru