Лучшие помощники
- Megamozg 2190 б
- Matalya1 1800 б
- DevAdmin 1695 б
- arkasha_bortnikov 860 б
- Dwayne_Johnson 845 б
10 декабря 2022 22:20
625
На вход алгоритма подаётся натуральное число 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
Остались вопросы?
Еще вопросы по категории Информатика
В таблице приведена стоимость перевозок между соседними железнодорожными станциями. Укажите схему, соответствующую таблице....
рассчитайте объем видеопамяти, необходимой для хранения графического изображения, занимающего весь экран монитора с разрешением 640x480 и палитрой из...
Полярная звезда находится в созвездии Малая Мед¬ведица. Ветельгайзе находится в созвездии Орион. Расстояние до Спики — 260 световых лет. Денеб находит...
1 Тренировочная задача 2 [1 балл) Даны Минимальная температура, максимальная температура и текущая температура. Выведи действие климат-контроля: Если...
Какая команда используется для запуска программы IDLE (Python 3.8)? А) File ⇒ New File. В) Run ⇒Run Module. С) Edit ⇒ Undo. D) Help ⇒ About IDLE....
Все предметы