Формальное исполнение простого алгоритма, записанного на естественном языке, или умение создавать линейный алгоритм для формального исполнителя с ограниченным набором команд, или умение восстанавливать исходные данные линейного алгоритма по результатам его работы · 26 заданий
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К это…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Кажды…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Кажды…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Из числа N вычитается остаток от деления N…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Из числа N вычитается остаток от деления N…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам: 1) Вычисляются суммы квадратов первой и второй,…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам:
1) Перемножаются все цифры исходного числа.
2) Суммируются все цифры исходного числа.
3) Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число: 621. Произведение цифр: 6⋅2⋅1=12; сумма цифр: 6+2+1=9. Результат: 129.
Укажите наибольшее число, при обработке которого автомат выдаст число 24019.
Правильный ответ
865
Пояснение
Решение:
Автомат склеивает два числа: произведение цифр P и сумму цифр S, причём первым записывается большее из них. Значит, строку 24019 надо разрезать на две части так, чтобы левая часть была не меньше правой и ни одна из них не начиналась с нуля. Подходят только два разреза: 240 и 19, либо 2401 и 9 (вариант 2 и 4019 отпадает, так как 2<4019, а разрез 24 и 019 невозможен из-за ведущего нуля).
У трёхзначного числа сумма цифр не превосходит 9+9+9=27, а произведение — 9⋅9⋅9=729. Число 2401 не может быть ни суммой, ни произведением, поэтому второй разрез отпадает, и остаётся P=240, S=19.
Ищем цифры a,b,c с условиями a⋅b⋅c=240 и a+b+c=19. Такой набор единственный: {5,6,8}. Наибольшее трёхзначное число из этих цифр — 865. Проверка: 8⋅6⋅5=240, 8+6+5=19, 240≥19, результат «240» + «19» = 24019.
res = []
for n in range(100, 1000):
a, b, c = n // 100, n // 10 % 10, n % 10
p, s = a * b * c, a + b + c
if str(max(p, s)) + str(min(p, s)) == '24019':
res.append(n)
print(res) # [568, 586, 658, 685, 856, 865]
print(max(res)) # 865
Ответ: 865