Задача 2: Счастливые билеты
Известно, что счастливым считается полученный в общественном транспорте билет, в шестизначном номере которого сумма первых трёх цифр совпадает с суммой трёх последних. Например, билет с номером 513702 является счастливым, потому что 5 + 1 + 3 = 9 и 7 + 0 + 2 = 9.
Петя всю неделю ездил в школу на автобусе и теперь у него есть 5 билетов с номерами:
826179
867288
281999
199992
304802
К сожалению, все эти билеты несчастливые (можете проверить). Помогите Пете для каждого билета узнать два номера: ближайшего к нему счастливого билета с номером, меньшим, чем номер билета Пети, и ближайшего счастливого билет с номером, большим, чем номер билета Пети.
В ответе нужно записать пять строк. Каждая строка должна содержать 2 числа, разделенные пробелом:
первое число должно быть меньше номера билета Пети и являться счастливым;
второе число должно быть больше номера билета Пети и являться счастливым.
Порядок записи чисел в ответе менять нельзя. Если вы не можете найти ответ для какого-то из данных чисел, вместо этого ответа запишите любое шестизначное число.
Ответы
Ответ:
826178 827557
865748 867498
280514 283175
199991 200002
304502 306027
Объяснение:
Задачка интересная смог решить только методом перебора
(Закономерностей не выявил)
состряпал функцию для Excel
Function Sleft(s As Variant) 'для левых счастливых чисел
For i = 1 To s
s = s - i
ls = CInt(Mid(s, 1, 1)) + CInt(Mid(s, 2, 1)) + CInt(Mid(s, 3, 1))
rs = CInt(Mid(s, 4, 1)) + CInt(Mid(s, 5, 1)) + CInt(Mid(s, 6, 1))
If ls = rs Then Exit For
Next
Sleft = s
End Function
Function SRight(s As Variant) 'для правых счастливых чисел
For i = 1 To s
s = s + i
ls = CInt(Mid(s, 1, 1)) + CInt(Mid(s, 2, 1)) + CInt(Mid(s, 3, 1))
rs = CInt(Mid(s, 4, 1)) + CInt(Mid(s, 5, 1)) + CInt(Mid(s, 6, 1))
If ls = rs Then Exit For
Next
SRight = s
End Function