C 162 bytes
#C 162 bytes golfedgolfed:
main(int argc,char **argv){char *c=argv[1];int u=atoi(c),d;do{while(c[1]!=0){*c=abs(*c-*(c+1))+48;c++;}*c=0;c=argv[1];d=atoi(c);u+=d;}while(d>9);printf("%d",u);}
ungolfed:
main(int argc, char **argv)
{
char *c=argv[1];
int u=atoi(c),d;
do
{
while(c[1]!=0)
{
*c=abs(*c-*(c+1))+48;
c++;
}
*c=0;
c=argv[1];
d=atoi(c);
u+=d;
}
while(d>9);
printf("%d\n",u);
}