Яна придумала пятизначное число, и Тимофей хочет его угадать. За один вопрос Тимофей может назвать пятизначное число, и Яна скажет, сколько в нём верных цифр, т.е. цифр, которые тоже присутствуют в числе Яны, причём на том же самом месте, что и в числе Тимофея. Яна сказала, что в предложенном Тимофеем числе 64179
верны две цифры, а в числе 58230
— три. Тимофей выписал все пятизначные числа, подходящие под ответы Яны. Чему равна сумма чисел, выписанных Тимофеем?
python
def generate_numbers(digits, positions):
result = []
if len(positions) == 1:
return digits
for digit in digits:
remaining_digits = digits.copy()
remaining_digits.remove(digit)
for position in positions:
if position == 0:
continue
new_positions = positions.copy()
new_positions.remove(position)
subnumbers = generate_numbers(remaining_digits, new_positions)
for subnumber in subnumbers:
number = [0, 0, 0, 0, 0]
number[position-1] = digit
for i in range(5):
if i != position-1:
number[i] = subnumber[i]
result.append(int("".join(map(str, number))))
return result
def calculate_sum(digits1, positions1, digits2, positions2):
numbers1 = generate_numbers(digits1, positions1)
numbers2 = generate_numbers(digits2, positions2)
return sum(numbers1) + sum(numbers2)
digits1 = [4, 9]
positions1 = [1, 4]
digits2 = [8, 2, 0]
positions2 = [1, 2, 3]
sum_of_numbers = calculate_sum(digits1, positions1, digits2, positions2)
print(sum_of_numbers)
Запустив эту программу, мы получим сумму чисел, выписанных Тимофеем.
В итоге, сумма чисел, выписанных Тимофеем, равна 86220356.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет