|
6 / 4 / 2
Регистрация: 09.01.2018
Сообщений: 59
|
||||||
Можно ли построить из заданного набора выражение, равное числу N27.03.2019, 22:15. Показов 12013. Ответов 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 начал писать.... вроде как что-то да и получалось, но тут возник с подставлением скобок. и никак не могу придумать как правильно их ставить. ведь если она открывается или закрывается, то и расположение относительно арифм.знака меняется. вот код который получился, но не работает. подскажите как поступить. и можно ли как-то упростить эту гору циклов:
0
|
||||||
| 27.03.2019, 22:15 | |
|
Ответы с готовыми решениями:
127
Проверить, можно ли из заданного набора букв составить заданное слово Определить, сколько прямоугольных треугольников можно создать из заданного набора точек |
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|
| 01.04.2019, 21:42 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
|
|
| 01.04.2019, 21:45 | |
|
Object result = engine.eval("(3/7+3)*7");
result.equals(24);//false result.equals((float) 24);//false Почему так? Добавлено через 35 секунд LektorIn, спасибо.
0
|
|
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
||||||
| 01.04.2019, 21:50 | ||||||
|
Лучше с кастуй к типу Number:
0
|
||||||
|
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
|
||
| 01.04.2019, 21:51 | ||
|
0
|
||
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|
| 01.04.2019, 21:51 | |
|
потому что у Object метод equals работает просто сравнивая 2 ссылки, а не значения
1
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|||||||
| 01.04.2019, 21:53 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
|
|||||||||||
| 01.04.2019, 22:21 | |||||||||||
|
Был такой цикл:
NUMBER_N - это число 24. Добавлено через 51 секунду Ну, и тип result был изменен с Object на float.
0
|
|||||||||||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 01.04.2019, 22:29 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
|
|
| 02.04.2019, 09:51 | |
|
xoraxax, нужно преобразовать к вещественному типу. Возможно, я иду по долгому пути. Сначала преобразуются к строке, а потом к типу float. Скорее всего, можно преобразовать сразу к типу float. А потом уже сравниваю два числа: одно вещественное, которое, возможно, криво преобразовал, а другое - число 24, преобразованное в вещественное.
0
|
|
|
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 9
|
||||||
| 02.04.2019, 16:27 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
|
|
| 02.04.2019, 16:29 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
|
|
| 02.04.2019, 16:40 | |
|
Dmitry_Barynov, а пояснение пишет? Ну, хотя бы одну комбинации, которая даёт число 24.
0
|
|
|
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 9
|
|
| 02.04.2019, 16:53 | |
|
а зачем не было этого в задании
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
|
||
| 02.04.2019, 16:57 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 61
|
|
| 02.04.2019, 17:03 | |
|
В задании это было. Я отправлял полнуб копию задания. К сожалению, мой код медленно работает, хоть и работает верно. Со второй попытки. Это говорит о том, что будет предложено его оптимизировать. Слегка оптимизировать - это понятно. Но сильно увеличить производительность пока не знаю как.
Добавлено через 54 секунды LektorIn, спасибо за помощь и подсказки, в том числе и разжевывание некоторых моментов.
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
|
|
| 02.04.2019, 17:08 | |
|
0
|
|
|
6 / 4 / 2
Регистрация: 09.01.2018
Сообщений: 59
|
|
| 02.04.2019, 17:13 [ТС] | |
|
Timoved, да я многое пропустил :-) тоже завернули с округлением. но я сделал вот так:
(result.equals(24.0) || result.equals(24))
0
|
|
|
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 9
|
|
| 02.04.2019, 17:17 | |
|
LektorIn,
Представьте ваше решение в виде java-функции вида: public boolean canBeEqualTo24(int[] nums) { ... } там и main не должно было быть кстати у меня много ошибок в том примере что я выложил но так как я отправлял не файлом а ссылкой на гитхаб поправил сразу же(например нет проверки остатка от деления что нужно) когда получу ответ о фирмы отпишусь
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2019
Сообщений: 25
|
||
| 02.04.2019, 17:27 | ||
|
wolfbethowen, маякни когда фирма отпишет что код по их мнению полностью рабочий
0
|
||
|
6 / 4 / 2
Регистрация: 09.01.2018
Сообщений: 59
|
|
| 02.04.2019, 17:53 [ТС] | |
|
LektorIn, да, конечно. часто бываешь здесь? а то у меня частенько интересные задачи возникают) кстати, сейчас тоже есть одна.
0
|
|
| 02.04.2019, 17:53 | |
|
Сколькими способами гирями заданного набора можно составить вес в v грамм Пирамиду какой наибольшей высоты можно построить из набора блоков Сколькими способами гирями заданного набора весов можно составить вес в v грамм? Строки. Напечатать все пары символов, которые можно из заданного набора составить
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|