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

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

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

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



Сообщение: 7
ссылка на сообщение  Отправлено: 27.02.22 10:00. Заголовок: Задание 5_284


284) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) Если N чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
6) Если N нечётное, то к нему справа приписываются два нуля, а слева единица.
Например, двоичная запись числа 1101 будет преобразована в 1110100.
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Сколько существует различных чисел N, для которых результат работы данного алгоритма принадлежит отрезку [500; 700]?

Здравствуйте! Я решала это задание в Excel, и у меня получился ответ 21. Это числа
500, 508, 513, 516, 522, 524, 530, 539, 540, 546, 555, 563, 572, 578, 587, 595, 611, 636, 642, 651, 692.
Наверное решать задачу с помощью программы проще, да и ответ будет правильный. Подскажите, как вы решали эту задачу?

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


Администратор




Сообщение: 3353
ссылка на сообщение  Отправлено: 06.03.22 13:07. Заголовок: def alg(x): s = f..


 def alg(x): 
s = f"{x:b}"
if x % 2 == 0:
s = s + f"{s.count('1'):b}"
else:
s = '1' + s + '00'
return int( s, 2 )

N = 1
count = 0
while N < 1000:
if 500 <= alg(N) <= 700:
print(N)
count += 1
# break
N += 1

print( 'Всего: ', count )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 8
ссылка на сообщение  Отправлено: 08.03.22 12:08. Заголовок: спасибо большое..


спасибо большое

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

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