Лучшие помощники
- Megamozg 2200 б
- Matalya1 1800 б
- DevAdmin 1700 б
- arkasha_bortnikov 890 б
- Dwayne_Johnson 860 б
10 декабря 2022 22:20
645
На вход алгоритма подаётся натуральное число 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
Остались вопросы?
Еще вопросы по категории Информатика
Робот-попугай Лёшенька хочет поразить своего создателя Бориса Ивановича тем, как хорошо он помнит «Трёх мушкетёров» (это любимый фильм Бориса Иванович...
У Николая есть друг Джон, который живет в Америке. Николай увлекается старинными вещами, поэтому Джон подарил ему градусник со шкалой Фаренгейта. Что...
Вариант 2 1. Найдите ошибку. Файл – это: а) Любая информация, записанная на технические носители под определенным именем б) Программа, записанная на...
Аааааааааа ааааааааааа...
Даны полные имена файлов, хранящихся на диске D:. D:\ COUNTRY \ USA \ INFO \ culture.txt D:\ COUNTRY \ USA \ Washington.txt D:\ COUNTRY \ RUSSIA \ M...
Все предметы