I would like to construct a function thats output is equal to the number of digits used to represent the number given as an input.

For example:
$f(5) = 1$
$f(9) = 1$
$f(13) = 2$
$f(99) = 2$
$f(682) = 3$
$f(999) = 3$
$f(9999)= 4$

Is it even possible with one function and if not, why not?
Can anyone help me with this or at least point me in the right direction?

  • $\begingroup$ possible duplicate of Checking the digits in an integer $\endgroup$ – Isaac May 6 '11 at 4:02
  • 1
    $\begingroup$ You have essentially defined the function, before you asked whether it is possible to define it. $$f(n)=\lfloor \log_{10}|n|\rfloor+1,$$ given in Listing's answer, is a nice formula for it, but $$f(n)=\text{ the number of digits used to represent }n$$ is a fine definition of a function $f$. $\endgroup$ – Jonas Meyer Aug 10 '11 at 7:16

The function is for integers in $\mathbb{Z}$

$D_{10}(n)=\lfloor \log_{10}|n| \rfloor+1$

if $n \neq 0$ and $D_{10}(0):=1$. You can leave the absolute function away if you just want to look at positive integers.

Note that for any base you want you could use

$D_{b}(n)=\lfloor \log_{b}|n| \rfloor+1$

for digits in base b, this is quite nice.

You have to use floor because especially $D_{10}(10)=2$. $\log_{10}n$ is the logarithm to base 10.

  • $\begingroup$ Yours is better, not to say correct. :-) $\endgroup$ – Asaf Karagila May 5 '11 at 8:30
  • $\begingroup$ Thanks yes, it is a mistake I also make often :) $\endgroup$ – Listing May 5 '11 at 8:31
  • $\begingroup$ Thanks, that is a wonderful solution. One question though, what does ":=" mean? $\endgroup$ – logicbird May 5 '11 at 8:46
  • $\begingroup$ @logicbird: ":=" means 'is defined to be'. In particular, since $\log_{10} 0$ is undefined, you must address that specific input separately. $\endgroup$ – Brandon Carter May 5 '11 at 8:49
  • $\begingroup$ @Brandon: oh, I see. I figured 0 would need to be handled separately but I was not familiar with that syntax. thanks. $\endgroup$ – logicbird May 5 '11 at 8:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.