@NamnaR

Как выбрать кратность из перечисленных кратностей для заданной суммы?

Ребята, добрый день, подскажите, пож-ста с алгоритмом. Ума не приложу.

Прошу помощи в вопросе.

Даны кратности 30, 70, 90, 100 .Сумма, которую вводит пользователь.

если пользователь введет 60 , то эта сумма не меняется. если пользователь введет 45-> сумма 70 155->160(30+70+30+30)
150->150(90+30+30)

UPD

Задача следующая.
Дано коробка-30шт - 2упаковки, коробка-70 шт- 3упаковки, коробка 90-1 упаковка, коробка 100- 8 упаковок
Есть поле инпут, в которое вводит пользователь
мне нужно, чтобы он смог сделать
- если пользователь ввел 60, то надо набрать СУММУ кратностей равную 60 (2 коробки по 30)
- если пользователь ввел 45, то надо набрать СУММУ кратностей равную 70 (1 коробка по 70, потому что в приоритет ставится дать меньшее число монет)
- если пользователь ввел 155, то надо набрать СУММУ кратностей равную 160 (4 коробки 30 70 30 30, или если числом монет то надо дать 2 коробки 90 и 70)

Клиент может заказать кол-во товаров превышающее наличие (30*2+70*3+90+8*100=1160). но тогда будет под заказ. Мне главное, чтобы запретить клиенту заказать 5 позиции- можно заказать только 30.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
'60' - это число, а не сумма
Ответ написан
@kantenbors
Вот это условие непонятно:
"если пользователь ввел 45, то надо набрать СУММУ кратностей равную 70 (1 коробка по 70, потому что в приоритет ставится дать меньшее число монет)"
Если без него, то решение вот такое (для 45 ответ будет 60):
def f(v):
n=(v+9)//10
if n<7: n=(n+2)//3*3
if n in (8,11): n+=1
return n*10
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы