Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 865 б
10 декабря 2022 22:20
719
На вход алгоритма подаётся натуральное число 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
Остались вопросы?
Еще вопросы по категории Информатика
Какие информационные услуги компьютерных сетей Вам известны? Каково их назначение?...
Срочно помогите...
6. Дано натуральное трёхзначное число. Напишите программу, которая определяет: На языке Python ...
В известной игре Stawl Brars Пете выпал новый персонаж, которого зовут Леон. У Пети и его друга Вани один аккаунт на двоих, поэтому они решили сыграть...
Паскаль 1. Составить программу для нахождения наименьшего числа из трех. 2. Написать программу на языке программирования Паскаль, которая будет соотв...