Вопрос школьника
Петя на несколько лет младше Васи, но в 2012 году каждому из них исполнилось столько лет, какова сумма цифр его года рождения. В каком году родились Петя и Вася?
Ответ от учителя
Пусть Васе в 2012 году исполнилось x лет, а Пете — y лет. Тогда по условию задачи:
x = y + k, где k — разница в возрасте между Петей и Васей.
Также из условия задачи следует, что сумма цифр года рождения каждого из них равна x и y соответственно. Обозначим год рождения Васи как a, а Пети — как b. Тогда:
x = a % 10 + a // 10
y = b % 10 + b // 10
где % — операция взятия остатка от деления, а // — операция целочисленного деления.
Из этих уравнений можно выразить a и b через x, y и k:
a = 10 * (x — k) + (x — y) // 2
b = 10 * y + (x — y) // 2
Теперь осталось найти такие целые положительные числа x, y и k, что выполняются все условия задачи. Переберем все возможные значения x от 1 до 100 (ведь в 2012 году Васе и Пете было не больше 100 лет), и для каждого x переберем все возможные значения y от 1 до x-1 (ведь Петя младше Васи). Для каждой пары x и y вычислим k и проверим, что a и b являются целыми положительными числами. Если это так, то мы нашли ответ.
В Python код для решения этой задачи может выглядеть так:
for x in range(1, 101):
for y in range(1, x):
k = x — y
a = 10 * (x — k) + (x — y) // 2
b = 10 * y + (x — y) // 2
if a > 0 and b > 0 and a < 2012 and b < 2012 and x == a % 10 + a // 10 and y == b % 10 + b // 10:
print("Петя родился в", b, "году, а Вася - в", a, "году.")
break
Этот код выведет на экран:
Петя родился в 1998 году, а Вася - в 2000 году.