Yo iria dividiendo por 10 en un ciclo y sumaria el numero mod 10 en una variable suma y un contador inicializado en 0 que vaya contando cada vez que se divida el numero hasta que sea menor a 0 y al final de todo hago la division entera entre la varialbe "suma" dividido el "contador", bueno algo asi
Con recursividad seria algo asi
int digitos(int n, int &contador)
{
if(n<10){
return n;
}
else{
return n%10+(digitos(n/10)); contador++;
}
}