На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 31.01.24 16:22. Заголовок: задача 6885


правильный ответ: 703
мой ответ: 3376

моё решение:
def f(x):
s=''
while x>0:
s+=str(x%15)
x=x//15
return s[::-1]
a=[]
for n in range(15, 1000):
s=str(f(n))
if n%15==0:
s+=str(s[0:2])
else:
k=(n%15)*13
s+=f(k)
R=int(s, 15)
if R>700:
a.append(R)
print(min(a))

где ошибка? т-т

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]





Не зарегистрирован
ссылка на сообщение  Отправлено: 22.02.24 12:01. Заголовок: Ошибка в строке 3: в..


Ошибка в строке 3: вы присоединяете цифру к числу справа s+=str(x%15), а надо слева: s= str(x%15)+s. Но ответ будет все равно не 703

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 263
ссылка на сообщение  Отправлено: 22.02.24 14:49. Заголовок: Ответ верен. Ваш пер..


Ответ верен.
Ваш перевод в 15 сс работает некорректно, так как остатки при делении на 15 могут быть двузначными, поэтому они заменяются буквами abcde.
используйте такой код для перевода в любые сс до 36 (просто увеличивая алфавит)
 
al='0123456789abcde'
f=lambda n: f(n//15)+al[n%15] if n>0 else ''

 
al='0123456789abcde'
f=lambda n: f(n//15)+al[n%15] if n>0 else ''
a=[]
for n in range(15, 1000):
s=str(f(n))
if n%15==0:
s+=str(s[0:2])
else:
k=(n%15)*13
s+=f(k)
R=int(s, 15)
if R>700:
a.append(R)
print(min(a))


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1358
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет