Проблемы с завершением проекта Python [v2]

print "Welcome to Amanda's Toy Factory"

print "At this factory, you will need to have 5 upper pieces and 2 lower pieces to create  a toy"

x = input("How many toys would you like to make?")

print "To create",x,"toys, you will need", x*5, "upper pieces and", x*2, "lower pieces"

a = input("How many upper pieces did you bring?")
b = input("How many lower pieces did you bring?")

Пример: Если вы введете у вас 23 единицы U и 5 л, это должно сказать вам, что вы можете создать 2 игрушки, и у вас останется 13 единиц U и 1 л.

Изменить) Спасибо, Ларри, за то, что рассказал мне, что случилось, я исправил и отправил.

2 ответа

Решение

У вас нет проблемы с Python, у вас проблема с алгоритмом.

Чтобы определить максимальное количество игрушек, которые можно собрать, вам нужно спросить себя: "Сколько игрушек можно собрать из фигур U" и "Сколько игрушек можно собрать из фигур L"? Фактическое количество игрушек, которые вы можете построить, является меньшим из этих двух чисел, верно? (Так как вы должны прекратить строить игрушки, когда у вас кончились те или иные части).

Как вы определяете, сколько игрушек из 5 предметов вы можете сделать из 11, 25 или 32 предметов? Вы делите количество доступных частей на части, необходимые для каждой игрушки.

Похоже, вы натолкнулись на эту идею, потому что вы делите доступные кусочки на требуемые куски - но (исходя из названия ваших переменных) вы, похоже, полагаете, что это вычисляет количество используемых кусочков, а не количество игрушек, которые могут быть встроенный. И вы не найдете нижний из двух игрушечных номеров.

После того, как вы определились с количеством игрушек, которые вы можете построить, легко рассчитать оставшиеся части.

Как сказал Ларри, вы должны пересмотреть свой подход к решению проблемы, прежде чем программировать решение на любом языке.

Прочитав ваш последний вопрос перед этим, я считаю, что вы ожидаете что-то вроде этого.

toys = input('How many toys would you like to build?')

toy = {'upper': 5, 'lower': 2}

print 'To create {toys} you will need {upper} upper pieces and {lower} lower pieces'.format(toys=toys, upper=toy['upper']*toys, lower=toy['lower']*toys)

stock = {
    'upper': input('How many U Pieces did you bring?'),
    'lower': input('How many L Pieces did you bring?'),
}

complete = {
    'upper': stock['upper'] / toy['upper'],
    'lower': stock['lower'] / toy['lower'],
    }

left_parts = {
    'upper': (toys * toy['upper']) % stock['upper'],
    'lower': (toys * toy['lower']) % stock['lower'],
    }

if toys * toy['upper'] >= stock['upper'] and toys * toy['lower'] >= stock['lower']:
    print 'You can build {toys} complete toys and no pieces will left in your stock.'.format(toys=toys)
else:
    print 'You can build {toys} complete toys and {lower} lower pieces and {upper} upper pieces will left in your stock.'.format(toys=min(complete.values()), lower=left_parts['lower'], upper=left_parts['upper'])
Другие вопросы по тегам