Автор | Сообщение |
|
Отправлено: 25.11.23 21:58. Заголовок: № 6861(в генераторе) Перевод в систему счисления
Результат по условию переводится из 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
[только новые]
|
|
|
Отправлено: 03.01.24 14:04. Заголовок: У меня тоже был вопр..
У меня тоже был вопрос к условию задания. Но код написать все же вышло: 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))
|
|
|