正整數 `n` 的十進制位數 = `floor(log10(n)) + 1`。
為避免 `n=10^k` 時浮點誤差,通用寫法:`(int)log10(n * 10)`。
#include <math.h>
#include <stdio.h>
int main() {
int nums[] = {1, 9, 10, 11, 99, 123, 888, 10001};
for (int i = 0; i < 8; ++i)
printf("%d: %d digits\n", nums[i], (int)log10(nums[i] * 10));
return 0;
}
1: 1 digits
9: 1 digits
10: 2 digits
11: 2 digits
99: 2 digits
123: 3 digits
888: 3 digits
10001: 5 digits