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

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

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

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



Сообщение: 1
ссылка на сообщение  Отправлено: 28.02.24 17:58. Заголовок: Объяснение решения задачи 367


Доброго времени суток. Решали с товарищем задачу 367

(А. Богданов) Операнды арифметического выражения записаны в системе счисления с некоторым частично заданным основанием
15123x5 + 151x233
В записи чисел переменной x обозначена неизвестная цифра. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 14. Для найденного значения x вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Пришли к следующему коду:

 
alf = "12345678910"
for x in alf:
num1 = int('123' + x + '5')
num2 = int('1' + x + '233')
if (int(num1) + int(num2)) % 14==0:
print(( int(num1) +int(num2)) // 14)


Вывод:
 
PS G:\ICT\Hometask\14\367> python .\main.py
1682
2187
1682


Правильного ответа (1827) здесь нет. Обратились к решению, там указан следующий код:
 
for x in range(10):
a = 1 * int(f'123{x}5') + 5
b = 1 * int(f'1{x}233') + 5
if (a+b) % 14 == 0:
r = (a+b) // 14


Почему конкретно в данном случае мы добавляем к полученному числу 5? Наш код выдаёт верный ответ если добавить 5 к полученным числам, но зачем это нужно и откуда это число вообще берётся?
Решение на ютубе не помогло, автор скопировал код А. Богданова, и изменил пару переменных для различия, при этом не дав адекватного объяснения

Украденный код Ивана Баженова(поиграем в найди отличия):
 
for x in range(0, 10):
num1 = int(f"123{x}5") + 5
num2 = int(f"1{x}233") + 5
if (num1 + num2) % 14 == 0:
print((num1 + num2) // 14)


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







Сообщение: 267
ссылка на сообщение  Отправлено: 29.02.24 07:18. Заголовок: При переводе в разли..


При переводе в различные системы счисления int можно использовать только, если основание сс меньше или равно 36.
Т.е. в нашем случае нельзя.
В коде он используется, чтобы перевести само основание сс в десятичной число (кстати, меня смущает, что X - это именно десятичная цифра, может она буква abcd... как в шестнадцатеричной сс)

В десятичной сс: 123=1*100+2*10+3*1 или точнее: 123=1*(10 в квадрате)+2*(10 в первой) +3*(1- в нулевой)
В неизвестно в данном случае сс: 15 в сс(123x5) = 1* (123x5 в первой) + 5 *(123x5 в нулевой) (последнее слагаемое и есть 5)

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

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