Contribution for Puzzlet #026
From: Denis Borris [firstname.lastname@example.org]
Program quite simple; half-english:
(6digit = a, 5digit = b and 4digit = c)
loop k from 663 increment of 1
get a by constructing palindrome using k [ex: 663366]
calculate m [mileage so far]
if b+m and c+m not both palindromes then k=k+1 and carry on
end here if you only want one !
-using 3digit k reduces looping in ratio 9:1
-it is easier not to worry about a, b+m and c+m
exceeding odometer size; simply "get" the last
6/5/4 digits of each.
Thanks, Denis. This is faster than my original algorithm, and I've adopted it in my solution. My approach to odomoter overflows is modular arithmetic. Dave.