|
6 / 4 / 2
Регистрация: 09.01.2018
Сообщений: 59
|
||||||
Можно ли построить из заданного набора выражение, равное числу N27.03.2019, 22:15. Показов 11797. Ответов 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 грамм? Строки. Напечатать все пары символов, которые можно из заданного набора составить
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|