Форум » Системы счисления » Задача Усова 5834 » Ответить

Задача Усова 5834

sergeylsv: В чем ошибка в алгоритме решения, не сходится с ответом? [pre] for n in range(1,100000): a=hex(n) a=a[2:] if n%2==0: a=a+max(a) else: a=a+'0' s=0 for i in range(len(a)): s=s+int(a,16) b=str(s%16) if b=='10': b='a' if b=='11': b='b' if b=='12': b='c' if b=='13': b='d' if b=='14': b='e' if b=='15': b='e' a=a+b s=0 for i in range(len(a)): s=s+int(a,16) b=str(s%16) if b=='10': b='a' if b=='11': b='b' if b=='12': b='c' if b=='13': b='d' if b=='14': b='e' if b=='15': b='e' a=a+b if a.count(max(a))==5*a.count(min(a)): print(n,a) [/pre]

Ответов - 2

MrAndrewson: a=a+max(a) Если число чётное, справа приписывается максимально возможная цифра Максимально возможная в 16 СС цифра это f

sergeylsv: Да, действительно так, а я понял условие, что это максимально возможная цифра в получившемся числе, а не в шестнадцатеричной системе счисления. Условие, наверное, можно было более четко написать, а задачка для этого класса хорошая.



полная версия страницы