To get the answer by logic, you could ty something like the following:
Let the age be x, and the birth year be y = 1000a + 100b + 10c + d, where a,b,c,d run from 0-9. Then the problem tells us that y + x = 2025, and x = a +b + c + d, which we can put together to get
1001a + 101b + 11c + 2d = 2025 .
As all digits are positive, we can run through all possibilities, and rule a lot out, quite quickly. Starting with a = 3-9, which clearly doesn't work. Also, suppose a = 2, then we get
101b + 11c + 2d = 2025 - 2002 = 23
which forces b = 0, ie 11c + 2d = 23.
Now we can see that, if c = 0, then 2d = 23 has no solution for d, while if c = 2 then 2d = 23 - 22 = 1 also doesn't work.
On the other hand, c = 1 gives 2d = 12 and so d = 6, hence y = 2016 is a solution.
Now, moving to a = 1, you'd have
101b + 11c + 2d = 2025 - 1001 = 1024.
Note that the maximum value of 11c + 2d is 13*9 = 117 , so that at minimum 101b = 1024 - 117 = 907, which means that b has to be 9 going backwards, this gives 11c + 2d = 115, which (by a similar argument) only works for c = 9, and so finally d = 8.
Hence there are indeed only the two solutions TTT found, and we haven't needed to resort to brute force. This approach is, I suppose, a sort of "squeeze", as we've zoomed in on the correct solutions by narrowing the window from both sides until finally only the solution(s) remain.
Still, I bet the program TTT wrote was faster :)