Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
10 декабря 2022 22:20
930
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё два разряда по следующему правилу: a) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001; b) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2. Полученная таким образом запись является двоичной записью числа R – результата работы данного алгоритма. Укажите минимальное число R, которое больше 60 и может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
1
ответ
Ответ:
1111 ( 15 )
Объяснение:
# Получить натуральное число N от пользователя.
def get_number():
while True:
try:
number = int(input('Введите натуральное число: '))
if number < 0:
raise ValueError
break
except ValueError:
print('Введено не натуральное число!')
return number
# Получить двоичную запись числа N.
def get_binary(number):
binary = ''
while number > 0:
binary = str(number % 2) + binary
number = number // 2
return binary
# сложить все числа в двоичной записи, и получить остаток от деления на 2.
def get_remainder(binary):
remainder = 0
for i in binary:
remainder += int(i)
return remainder % 2
# Дописать в конец двоичной записи остаток от деления на 2.
def add_remainder(binary, remainder):
binary = binary + str(remainder)
return binary
# Получившееся двоичное число - двоичное число R
# для числа R: сложить все числа в двоичной записи, и получить остаток от деления на 2.
def get_remainder_R(R):
remainder = 0
for i in R:
remainder += int(i)
return remainder % 2
# для числа R: Дописать в конец двоичной записи остаток от деления на 2.
def add_remainder_R(R, remainder):
R = R + str(remainder)
return R
# Вывести R
def print_R(R):
print('Двоичное число R:', R)
# Преобразовать двоичное число R в натуральное число.
def get_number_R(R):
number = 0
for i in R:
number = number * 2 + int(i)
return number
# Запуск программы.
def main():
number = get_number()
print('Двоичное число N:', get_binary(number))
binary = get_binary(number)
print('Остаток от деления на 2:', get_remainder(binary))
remainder = get_remainder(binary)
binary = add_remainder(binary, remainder)
R = binary
remainder = get_remainder_R(R)
R = add_remainder_R(R, remainder)
print_R(R)
print('Натуральное число R:', get_number_R(R))
number_R = get_number_R(R)
# Запуск программы.
if __name__ == '__main__':
main()
# Минимальное значение числа N, что-бы получить число R > 60: "15".
Ссылка на pastebin для копирования: https://pastebin.com/f6h8mHmp
1111 ( 15 )
Объяснение:
# Получить натуральное число N от пользователя.
def get_number():
while True:
try:
number = int(input('Введите натуральное число: '))
if number < 0:
raise ValueError
break
except ValueError:
print('Введено не натуральное число!')
return number
# Получить двоичную запись числа N.
def get_binary(number):
binary = ''
while number > 0:
binary = str(number % 2) + binary
number = number // 2
return binary
# сложить все числа в двоичной записи, и получить остаток от деления на 2.
def get_remainder(binary):
remainder = 0
for i in binary:
remainder += int(i)
return remainder % 2
# Дописать в конец двоичной записи остаток от деления на 2.
def add_remainder(binary, remainder):
binary = binary + str(remainder)
return binary
# Получившееся двоичное число - двоичное число R
# для числа R: сложить все числа в двоичной записи, и получить остаток от деления на 2.
def get_remainder_R(R):
remainder = 0
for i in R:
remainder += int(i)
return remainder % 2
# для числа R: Дописать в конец двоичной записи остаток от деления на 2.
def add_remainder_R(R, remainder):
R = R + str(remainder)
return R
# Вывести R
def print_R(R):
print('Двоичное число R:', R)
# Преобразовать двоичное число R в натуральное число.
def get_number_R(R):
number = 0
for i in R:
number = number * 2 + int(i)
return number
# Запуск программы.
def main():
number = get_number()
print('Двоичное число N:', get_binary(number))
binary = get_binary(number)
print('Остаток от деления на 2:', get_remainder(binary))
remainder = get_remainder(binary)
binary = add_remainder(binary, remainder)
R = binary
remainder = get_remainder_R(R)
R = add_remainder_R(R, remainder)
print_R(R)
print('Натуральное число R:', get_number_R(R))
number_R = get_number_R(R)
# Запуск программы.
if __name__ == '__main__':
main()
# Минимальное значение числа N, что-бы получить число R > 60: "15".
Ссылка на pastebin для копирования: https://pastebin.com/f6h8mHmp
0
·
Хороший ответ
12 декабря 2022 22:20
Остались вопросы?
Еще вопросы по категории Информатика
A = [0, 1, 2, 3, 4] i = 1 A[2] = A[i] + A[i+1] + A[3*i] print( A[2] + A[4] ) Укажите результат работы программы....
1) Что такое «фейк»? Является ли новость о том, что начало учебного года перенесут на 15 сентября «фейком»? Почему? 2) Отличаются ли «фейки» в социаль...
сканер имеет разрешение 512*512 dpi отсканированное изображенние размером 8*4 дюйма занимают 16 мбайт памяти, чему равна глубина цвета точки отсканиро...
Сообщение, состоящие из 4096 знаков (с пробелами), занимает в памяти 3,5 Кбайта. Какова мощность алфавита, который использовался при кодировании этого...
1. Какую информацию может обрабатывать КОМПЬЮТЕР? 2. Для ввода какой информации предназначены микрофон, сканер, цифровая камера? 3. Для чего нужна кл...