Форум » Кодирование и декодирование информации » № 6861(в генераторе) Перевод в систему счисления » Ответить

№ 6861(в генераторе) Перевод в систему счисления

makoto: Результат по условию переводится из 45ричной в 10ричную систему счисления. Но возникает проблема в том, что не ясно, как. Например число 410 в 45ричной системе счисления может состоять из остатков (4,1,0), а может (4,10). А от того, как конкретно число разбирается по остаткам, зависит ответ. Поэтому процедура: def p(r): a=list(map(int,str(r))) a=a[::-1] k=[] for i in range(len(a)): h=a*45**i k.append(h) return(sum(k)) где r - число в 45ричной системе счисления, работает некорректно.

Ответов - 1

Ж: У меня тоже был вопрос к условию задания. Но код написать все же вышло: [pre2] f=lambda n: f(n//45)+ [n%45] if n>0 else [] # перевод числа в сс 45 в виде списка, чтобы различать двузначные "цифры" этой сс g=lambda s: g(s[1::])+s[0]*45**(len(s)-1) if s else 0 # обратный перевод числа (в виде списка его "цифр") в 10 сс l=[] for n in range(1001,10000): a=sum(c for c in f(n)[::2]) # сумма "цифр" на нечетных позициях b=sum(c for c in f(n)[1::2]) # сумма "цифр" на четных позициях s=f(min(a,b))+f(n)+f(max(a,b)) # склейка l.append(g(s)) print(min(l)) [/pre2]



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