Вопрос, который я пытаюсь
Описание функции
Завершите функцию бонетрора в редакторе ниже. Он должен возвращать массив целых чисел.
bonetrousle имеет следующие параметры:
n: целое число палочек, чтобы купить k: целое число размеров коробок, которые хранит магазин b : целое число коробок для покупки
Редактировать:
- Функция принимает n как количество палочек сфагетти для суммирования от всех коробок, купленных Papyrus.
- b - это количество коробок, которые будут приобретены Papyrus, а затем все сфагетти в них будут добавлены в форму n
- k будет общим количеством ящиков в магазине, каждое из которых содержит и увеличивает количество sphagetti, например, 8 ящиков будут в порядке 1 ящика == 1 sphagetti, 2 ящика == sphagetti ... 8-я коробка.
, если число n коробок, требуемых для Papyrus, больше по сравнению с теми, которые есть в наличии, тогда вы возвращаете -1.
Надеюсь, это прояснит вопрос еще немного
Также этот вопрос можно лучше понять через HackerRack https://www.hackerrank.com/challenges/bonetrousle/problem
Если есть решение, выведите одну строку различных целых чисел, разделенных пробелами, где каждое целое число обозначает количество лапши в каждой коробке, которую должен купить Papyrus. Если существует несколько возможных решений, вы можете распечатать любое из них. Не печатайте начальные или конечные пробелы или дополнительные символы новой строки.
Пример ввода
- 4
- 12 8 3
- 10 3 3
- 9 10 2
- 9 10 2
Пример вывода
** Это мое решение **
Это должно сработать в первом тестовом примере, но я знаю, что нет Я не могу использовать b (количество коробок, которое скелетон хочет купить), потому что я не совсем понимаю, как это сделать go.
def bonetrousle(n, k, b):
# list the range for the store boxes {done}
# find if the number of boxes required by skeleton are accessible from the store
# find a combination that gives me the number of sphagetti required by skeleton
inventory=[item for item in range(1,k+1)]
list_of_outcome=[]
# if sum of the items in the store is greater than the number of
# individual sphagetti's wanted, this means,is possible to get
# what skeleton came looking for
if sum(inventory)>n:
if b==2:
for i in inventory:
for j in inventory:
if i+j==n:
list_of_outcome.append("{}{}".format(
i,j
))
else:
for i in inventory:
for j in inventory:
for k in inventory:
if i+j+k==n:
list_of_outcome.append("{}{}{}".format(
i,j,k
))
else:
return ("-1")
if list_of_outcome!=[]:
return ((random.choice(list_of_outcome)).strip())
Compiler Message
Wrong Answer
Input (stdin)
Download
4
12 8 3
10 3 3
9 10 2
9 10 2
Your Output (stdout)
3 5 4
- 1
8 1
8 1
Expected Output
Download
2 3 7
-1
5 4
1 8
Итак, мне действительно нужна ваша помощь в автоматизации для циклов или любого другого альтернативного решения, потому что я знаю, что многие циклы for занимают так много места и времени.