|
Подбор суммы для числа | ☑ | ||
---|---|---|---|---|
0
mataranga
02.09.14
✎
09:13
|
Доброе время суток,
есть номенклатура A рублей надо подобрать номенклатуру у которой сумма равна А рублей. То есть Шарик 1400 рублей Одеяло 500 рублей + Кровать 400 рублей + Женщина 500 рублей = 1400 рублей Количество номенклатуры неограниченно Какие идеи? |
|||
1
butterbean
02.09.14
✎
09:20
|
||||
2
mataranga
02.09.14
✎
10:31
|
&НаКлиенте
Процедура Команда1(Команда) МассивЦифр=Новый Массив(); МассивЦифр.Добавить(11);//0 МассивЦифр.Добавить(16);//1 МассивЦифр.Добавить(8); //2 МассивЦифр.Добавить(4); //3 МассивЦифр.Добавить(7); //4 МассивЦифр.Добавить(6); //5 МассивЦифр.Добавить(3); //6 МассивЦифр.Добавить(12);//7 Итог=Команда1НаСервере(МассивЦифр,20,МассивЦифр); Для Каждого элемент из Итог Цикл Сообщить(элемент); КонецЦикла; КонецПроцедуры &НаСервереБезКонтекста Функция Команда1НаСервере(МассивЦифрИзменяемый,Сумма,МассивЦифр,Позиция=0) ИтоговыйМассив=Новый Массив; Если Сумма<=0 Тогда Возврат 0; КонецЕсли; Если МассивЦифрИзменяемый.Количество()=0 Тогда Возврат 0; КонецЕсли; ПервыйВМассиве=МассивЦифрИзменяемый[0]; Если ПервыйВМассиве=Сумма Тогда ИтоговыйМассив.Добавить(МассивЦифр[Позиция]); Возврат ИтоговыйМассив; КонецЕсли; Если МассивЦифрИзменяемый.Количество()=1 Тогда Возврат 0; КонецЕсли; ВспомогательныйМассив=Новый Массив; МассивЦифрИзменяемый.Удалить(0); ВспомогательныйМассив = ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(МассивЦифрИзменяемый)); РезВспомогательногоМассива=Команда1НаСервере(ВспомогательныйМассив,Сумма-ПервыйВМассиве,МассивЦифр, Позиция+1); Если РезВспомогательногоМассива<>0 Тогда РезВспомогательногоМассива.Добавить(МассивЦифр[Позиция]); Возврат РезВспомогательногоМассива; КонецЕсли; РезВспомогательногоМассива=Команда1НаСервере(ВспомогательныйМассив,Сумма,МассивЦифр,Позиция+1); Если РезВспомогательногоМассива<>0 Тогда Возврат РезВспомогательногоМассива; КонецЕсли; Возврат 0; КонецФункции В чем ошибка? Выводит 7 и 16 |
|||
3
PR
02.09.14
✎
10:33
|
(0) Поле чудес автоматизируешь?
|
|||
4
mataranga
02.09.14
✎
10:39
|
Если бы,
Мальчик говорит маме, дай 100 рублей на мороженку. Мама дает, а мальчик говорит: Давай скажем папе что ты мне дала на проезд в автобусе 25 руб., на тетрадки 50 рублей, и на ручки 25 рублей. |
|||
5
PR
02.09.14
✎
10:40
|
(4) Что у вас, свежий завоз травы?
|
|||
6
mataranga
02.09.14
✎
10:41
|
(5) Зачем мне холодильник если я не курю
|
|||
7
mikeone
02.09.14
✎
11:02
|
(5) Вполне себе жизненная задача.
|
|||
8
hhhh
02.09.14
✎
11:46
|
а просто в пару циклов написать уже влом? Без этих дебильных рекурсий и значениевстроку и значениеиз строки?
|
|||
9
torgm
02.09.14
✎
11:55
|
(5) на заре 2000 регулярно появлялись такие задачи, как правило у компаний занимающихся, разницей и потом, + черные продажи в опте...
главбухи, с целью обеления продаж, чтобы не морочиться, просили провести продажу чего-нибудь через розницу по заниженной цене, на указанную сумму... по факту разъяснения бухгалтерам, не совсем корректного под хода составляли совместно решение более красивое... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |