Hola:
Usar un método recursivo para pocos niveles de recursión... académicamente es una opción buenísima... pero sin dudas no es el mejor sistema...
Sobre el uso de Math... la pregunta se hace sobre un texto (alfanumérico)... y aunque el resultado pueda ser correcto, habría (para ser más correcto) que usar la coletilla "toString()".
Saludos