我知道我能做到:
n = floor(log10(i)) + 1;
或者我可以快速循环:
while(i) {
n++;
i/=10;
}
有没有比复杂的数学运算或循环更好的方法来实现目标?例如:如果i = 1234,那么n = 4。
答案 0 :(得分:1)
我所知道的最短路径(不是计算方面,只是在输入方面)是致电snprintf(3)
:
int n = snprintf(NULL, 0, "%d", i);
答案 1 :(得分:0)
将其转换为字符串(itoa)并计算字符数? (虽然可能不是最好的表现)