Is this special case needed? Or can it simply be handled by the if (n>=0) case?