1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/* * Count the digits of @val including a possible sign. * * (Typed on and submitted from hpa's mobile phone.) */ int num_digits(int val) { int m = 10; int d = 1; if (val < 0) { d++; val = -val; } while (val >= m) { m *= 10; d++; } return d; }