Введём новую операцию «зачёркивание» —
удаление из числа любой одной цифры так, чтобы оставшиеся в числе цифры соединились, образовав новое число, не начинающееся с 0
. Например, из числа 1023
одной такой операцией можно получить числа 123
, 103
и 102
.
Никита применил не более двух операций зачёркивания к числу 123498765
и получил в результате число, делящееся на 36
. Сколько различных чисел мог получить Никита?
python
count = 0
def check_divisibility(n):
if int(n) % 4 == 0:
return True
else:
return False
def check_sum(n):
s = sum([int(x) for x in str(n)])
if s % 9 == 0:
return True
else:
return False
def generate_combinations(s, n):
global count
if len(s) == n:
if check_divisibility(s) and check_sum(s):
count += 1
return
for i in range(len(s)):
temp = s[:i] + s[i+1:]
generate_combinations(temp, n)
# generate all combinations of 1 or 2 digits removed
for i in range(1, 3):
generate_combinations('123498765', i)
print(count)
Результатом выполнения данной программы будет количество различных чисел, которые может получить Никита после удаления одной или двух цифр из числа 123498765 и делящихся на 36.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет