|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Есть таблица c int полями ID и Count: ID Count 1 - 18 2 - 6 3 - 11 4 - 1 5 - 6 Есть переменная с текущим значением = 37 Как 37? распределить по таблице, что бы в итоге получилось: Select 1 - 18 2 - 2 3 - 11 5 - 6 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 15:27 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Nik_Kurta, об алгоритме "разложения" предлагается догодаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 15:40 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Nik_Kurta, что делать в случаях, когда никакая комбинация count-ов не позволяет в сумме получить заданное значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 15:42 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, выйти из процедуры и выдать сообщение пользователю о ошибке! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 15:47 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, алгоритм обычный, начинаем с максимального значения Count. Допустим переменная получила значение = 18, тогда ID = 1 и Count = 18 далее выходим из процедуры. Если переменная получила значение допустим < 18, тогда ID = 1 а Count = 18 - значение переменной. Выход из процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 15:53 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Задачка такая! На полках от 1 до 5, лежат яблоки по соответствию: 1 полка - 18 яблок, 2 полка - 6 яблок и т.д. Пришёл Буратино и попросил 37 яблок! Мы ему должны выдать их начиная с № полки с максимальным кол-вом яблок. Т.е. 1 полка - 18 шт., 3 полка - 11 шт., 5 полка - 6 шт., пока не наберём 37! Прошу помощи! Голова сейчас лопнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:47 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Nik_KurtaДобрый Э - Эх, алгоритм обычный, начинаем с максимального значения Count. Допустим переменная получила значение = 18, тогда ID = 1 и Count = 18 далее выходим из процедуры. Если переменная получила значение допустим < 18, тогда ID = 1 а Count = 18 - значение переменной. Выход из процедуры. Nik_Kurta Как 37 распределить по таблице, что бы в итоге получилось: Select 1 - 18 2 - 2 3 - 11 5 - 6 Наверно все дело в пятнице, но не вижу тут никакой логической цепочки, кроме весьма условной авторДопустим переменная получила значение = 18, тогда ID = 1 и Count = 18 далее выходим из процедуры и автор1 - 18 Так как 37 <> 18 Похоже, что вы что-то недоговариваете. Давайте еще раз и на человеческом языке опишите алгоритм распределения значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:47 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Nik_Kurta... Пришёл Буратино ... С этого нужно было начинать! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:49 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:51 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Nik_Kurta Как 37 распределить по таблице, что бы в итоге получилось: Select 1 - 18 2 - 2 3 - 11 5 - 6 1. Сравниваете остаток с максимальным значением на полке. 2. если остаток больше, то отмечаете эту полку и вычитаете из остатка, переходите к п.1 3. если остаток меньше, то сравнивате со следующим после максимального значением и переходите к п.2 Делаете, пока не наберете нужное количество. Есть вероятность, что в конце не сможете набрать точно, тогда откатываетесь на 2 шага назад и начинаете снова. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:55 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Konst_One, нет! Там ничего не говорится про Буратино! Условия задачи не соблюдены! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:57 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
SQL2008, в результате нужно получить список № полок и сколько оттуда взяли яблок. Итог такой: с 1-й взяли 18, с 3 - 11 яблок, с 5 - 6, с 2 - всего 2, остаток на второй - 4 яблока. А с 4 полки вообще не брали ничего, её не учитываем! Как собака, всё понимаю, а сказать, вернее составить запрос, не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 17:06 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 19:10 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
aleks2, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и всё разлетелось ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 21:29 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Makar4ikaleks2, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и всё разлетелось Зачем брешешь, дарагой, а? 37 37 11 200 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2015, 13:29 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
aleks2, огромное тебе спасибо!!! Проверил работу процедуры с разными значениями переменной, всё работает на ура! Сам бы, до такого решения задачи, явно бы не дошёл. Всё пытался решить с помощью курсора, но ни как. Респект и уважение тебе! Тема закрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2015, 18:06 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
aleks2Makar4ikaleks2, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и всё разлетелось Зачем брешешь, дарагой, а? 37 37 11 200 1 37 37 11 200 1 - это насколько я понял, он сходу выбрал 11-ю строку, со значением 200, понял, что она > 37, и успокоился. Я верно понимаю, что ТС хотел не 200, а 34+3, или 21+13+2+1? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2015, 23:02 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
Makar4ik37 37 11 200 1 - это насколько я понял, он сходу выбрал 11-ю строку, со значением 200, понял, что она > 37, и успокоился. Я верно понимаю, что ТС хотел не 200, а 34+3, или 21+13+2+1? как раз в своем алгоритме ТС набирает заказанное, начиная с самых "крупных купюр", как банкомат: Nik_KurtaДобрый Э - Эх, алгоритм обычный, начинаем с максимального значения Count . Допустим переменная получила значение = 18, тогда ID = 1 и Count = 18 далее выходим из процедуры. Если переменная получила значение допустим < 18, тогда ID = 1 а Count = 18 - значение переменной. Выход из процедуры. зачем лишние телодвижения совершать, если полка с 200 в состоянии обслужить? не нравится -- убирайте "крупные" полки, будет вам "мелкими". напраслину возводите, товарищ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2015, 23:45 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
o-o...зачем лишние телодвижения совершать, если полка с 200 в состоянии обслужить?...обслуживание с полки содержащими 200 единиц потребует дополнительного счёта, а для решения с несколькими (или одной) полными полками необходимо будет просто сгрести в корзину всё что есть на полке (без счёта, просто по номерам полок).. что если нужно будет 569 яблок отсчитать с полки на 1000? по одному считать или примерно половину отгрести? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2015, 03:00 |
|
Уважаемые Гуру помогите разложить целое число
|
|||
---|---|---|---|
#18+
У ТС в примере бывают полки с повторяющимися количествами, так что если утрировать, то могут быть и 1000 полок по 1 яблоку. Так что считать придется все равно. Ну и если уж тут конкурс извращенной фантазии, то могу инпут еще интереснее обустроить: полки на разных этажах небоскреба и некий шутник расположил их так, что на каждом этаже есть ровно 2 полки, содержащие яблоки: на одной 1000, на другой 1. Ну так по вашей версии будем посещать 569 комнат, т. е. убегаетесь/укатаете лифт, а алекс тем временем сгребет свои яблоки не отходя от кассы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2015, 09:15 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1697043]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
23ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 408ms |
0 / 0 |