如何判断一个正整数是几位数

2023-12-13 10:32:55 浏览数 (1)

  1. 用数学方法
代码语言:javascript复制
int n = 74523434;
int digits = (int)Math.Floor(Math.Log10(n)   1);
Trace.WriteLine(digits);

原因:

对于10进制的数来说,一个n位数的最小值是10的(n-1)次方,最大值是10的n次方减1。例如,一个3位数的最小值是100(即10的2次方),最大值是999(即10的3次方减1)。所以,如果我们有一个数x,我们可以通过计算10的对数来得到这个数的位数。如果x是一个n位数,那么10的对数的值应该在(n-1)到n之间。因此,我们可以通过取对数的地板值并加1来得到x的位数。

  1. 取余 除法运算
代码语言:javascript复制
int n = 12345;
int digits = 0;
while (n != 0)
{
    n /= 10;
    digits  ;
}
Console.WriteLine(digits);
  1. 转字符串
代码语言:javascript复制
int n = 2321221;
int digits=n.ToString().Length;

总结:用数学取对数的方法性能最好,其次是转字符串,虽然中间涉及了封箱操作,最后是循环除法。

————————————————

版权声明:本文为CSDN博主「游子吟i」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/ftfmatlab/article/details/134284506

0 人点赞