ところでJavaを使用しています。しかし、通常、人々はこの種のことを行うようです。
int numDigits = (int)(log10(num)+1); //can explicitly floor, or casting to int will do that
しかし、log10(0) = -INF です。これは、長さが最大の負の整数値に設定されていることを意味します。
条件を作ってもいいと思います
if (numDigits is negative)
numDigits = 1 //not 0 because I'm counting 0 as 1 digit.
これは、自然数コンストラクターを実装するために使用されているため、人々は私の問題にコンテキストを持っています。