#Prolog, 143 bytes# **Code:** q(X,N):-X<9,N=0;A is abs(X mod 10-X//10 mod 10),Y is X//10,q(Y,M),N is A+M*10. r(X,N):-X<9,N=X;q(X,Y),r(Y,M),N is X+M. p(X):-r(X,N),write(N). **Explained:** q(X,N):-X<9,N=0; % If only one digit, the difference is 0 A is abs(X mod 10-X//10 mod 10),Y is X//10,q(Y,M),N is A+M*10. % Else, the difference is the difference between the last 2 digits + the recursive difference of the number without the last digit r(X,N):-X<9,N=X; % If we only have 1 digit the final answer is that digit q(X,Y),r(Y,M),N is X+M. % Else, the final answer is the current number + the recursive difference of that number p(X):-r(X,N),write(N). **q** does the calculations that convert a number into it's Digit Difference.<br> **r** recursively calls **q** and sums up the results to find the Digit Difference Sum. <br> **p** is the entry point. Takes a number, calls **r** and prints the answer. <br><br> **Example:** >p(8675309). 8898683 Try it online [here](http://swish.swi-prolog.org/p/FEbBzrgH.pl).