algorithm - 查找整数的位数

标签 algorithm digits counting

求正整数位数的最佳方法是什么?

我找到了这 3 个基本方法:

  • 转换为字符串

    String s = new Integer(t).toString(); 
    int len = s.length();
    
  • 循环

    for(long long int temp = number; temp >= 1;)
    {
        temp/=10;
        decimalPlaces++;
    } 
    
  • 对数计算

    digits = floor( log10( number ) ) + 1;
    

您可以在其中计算大多数语言的 log10(x) = ln(x)/ln(10)。

起初我认为字符串方法是最脏的方法,但我越想越觉得它是最快的方法。或者是?

最佳答案

总有这种方法:

n = 1;
if ( i >= 100000000 ) { n += 8; i /= 100000000; }
if ( i >= 10000     ) { n += 4; i /= 10000; }
if ( i >= 100       ) { n += 2; i /= 100; }
if ( i >= 10        ) { n += 1; }

关于algorithm - 查找整数的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655754/

相关文章:

java - 如何在多条线交叉的矩形内找到区域?

algorithm - 使用 shell 脚本编写算法简介是个好主意吗

java - 字母表可以组成多少个 N 长的字符串?需要一个高效的算法

c# - 按字母顺序对字符串中的数字进行排序

javascript - LeetCode : 1281. 整数的乘积与位数之和相减

c - 将数字分开然后求和的函数

计算字符串中 101 的个数

php - 如何判断一个数组是否有元素?

c++ - 找到数组中元素总和最大的子序列

java - 为什么我在运行应用程序时会收到此错误?