有什么建议可以提供更好的解决方案吗?
在C:
int countDigits(int v) {
for(int i=v, digits =1 ; i != 0; i = i/10,v = digits++);
return v;
}
答案 0 :(得分:2)
如果不允许引入任何变量,则递归可能是一个选项:
int countDigits(int v) {
return (v >= 10 || v <= -10 ? 1+countDigits(v/10) : 1);
}
请注意额外条件,以便该功能也可以正确处理负数。