Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2013 17:23:40

Euler
Зарегистрирован: 2013-07-30
Сообщения: 43
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите найти причину некорректной работы кода

Euler
print([x//64]+list(bin(x%64)[2:]))
Хотя я уверен, что препод рассчитывает увидеть такое решение:
x = int(input())
nominals = [1, 2, 4, 8, 16, 32, 64]
nominals.sort(reverse=True)
for nominal in nominals:
	print(x//nominal, 'купюр номиналом', nominal)
	x %= nominal
это явно задача на цикл for-in.

Офлайн

#2 Окт. 22, 2013 17:30:31

Denis_Yakovenko
Зарегистрирован: 2013-09-28
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти причину некорректной работы кода

Euler
ого, выглядит намного красивее, спасибо большое!

Не могли бы Вы немного разъяснить смысл кода? В частности, эту строку:

Euler
nominals.sort(reverse=True)
И еще, принцип перебора номиналов в цицле for

Офлайн

#3 Окт. 22, 2013 17:51:59

Euler
Зарегистрирован: 2013-07-30
Сообщения: 43
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите найти причину некорректной работы кода

Denis_Yakovenko
В частности, эту строку:
сортировка от большего к меньшему.
Denis_Yakovenko
И еще, принцип перебора номиналов в цицле for
Это должно быть интуитивно понятно, тело цикла вызывается последовательно для каждого элемента списка.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version