Основная идея состоит в том, что каждая сумма – это сумма цифр, то есть она не может быть больше 18. Значит, надо разбивать каждое возможно получившееся число на однозначные и двузначные числа и смотреть, может ли такое быть.
1212 – возможно, например, из числа 666 (6+6 = 12, 6+6 = 12, итог: 1212)
129 – возможно, например, из числа 936 (9+3 = 12, 3+6 = 9, итог: 129)
123 – возможно, например, из числа 930
1218 – невозможно. Это число можно разбить только на два двузначных числа, но тогда 12 и 18 записаны в порядке возрастания, а по условию должно быть наоборот
1812 – возможно, например, из числа 993
312 – невозможно. Это число можно разбить либо на 3 и 12, либо на 31 и 2. В первом случае числа расположены в порядке возрастания, а во втором нельзя получить 31, так как сумма цифр не больше 18
912 – невозможно (аналогично с 312)
112 – возможно, например, из 920
Итого 5 чисел могут получиться.
ответ: 5
import random
class Cipher:
def __init__(self, number):
self.__number = number
def __encapsulate(self):
operation = random.choice(['+', '-', '*', '/'])
operand = random.randint(1, 10)
if operation == '+':
self.__number += operand
elif operation == '-':
self.__number -= operand
elif operation == '*':
self.__number *= operand
elif operation == '/':
self.__number /= operand
def get_result(self):
self.__encapsulate()
return self.__number
# Використання об'єкта-шифратора
number = int(input("Введіть число: "))
cipher = Cipher(number)
result = cipher.get_result()
print("Результат: ", result)
Объяснение:
цьому прикладі створюється клас `Cipher`, який має приватне поле `__number` для зберігання числа. Метод `__encapsulate()` випадковим чином обирає математичну операцію (додавання, віднімання, множення або ділення) та випадковий операнд, і застосовує цю операцію до числа. Метод `get_result()` повертає результат шифрування числа.
При запуску програми ви будете звернені до введення числа. Потім об'єкт-шифратор зашифрує це число, виконавши випадкову математичну операцію. Результат буде виведений на екрані. Кожний раз, коли ви викликаєте `get_result()`, ви отримаєте новий результат, оскільки операція випадково обирається кожного разу.