Очередная задача из горе-учебника на применение рекурсии там, где ее применять не следует?
helpmepls,
Вы, при рекурсивном вызове передаете два параметра, а используется только один, как оно может работать "правильно"?
Также не понятно, вы хотите чтобы можно было передавать отрицательные числа? Если да, вы подумали как будет функция работать в этом случае? Бесконечная рекурсия не получится? А если нет, зачем проверка
n >= 0 ?
Вот вам в том же духе (т.е. с теми же недочетами):
function num(n)
{
return ( n >= 0 && n < 10 ) ? 1 : num(n/10)+1;
}