zoukankan      html  css  js  c++  java
  • C > 求十进制数的位数的2种方法

    对于10进制数d,求d位数。

    例:

    d=1000,位数=4 (分别是1,0,0,0)

    1.将d逐项除10(常规方法)

    #include <stdio.h>

    int
    main() { int d = 1000; int counter = 0; while(d) { counter ++; d /= 10; } printf("%d ", counter); return 0; }

    2.将d对10求对数

    注意到log10(10) = 1, log10(100) = 2, log10(1000) = 3, 实际位数为log10(d) + 1 ;

    而当d∈(100,1000)时,2 < log10(d) < 3,对log10(d)取整,求得2,也就是说实际位数为log10(d) + 1对于d不是10^n也成立。

    于是,

    #include <math.h>
    #include <stdio.h>

    int
    main() { int d = 1000; int counter = (int)log10(d) + 1; printf("%d ", counter); return 0; }
  • 相关阅读:
    Extended Traffic LightOJ
    SPFA()判环
    Ignatius and the Princess IV HDU 1029
    DNA sequence HDU
    Eight HDU
    哈密顿绕行世界问题 HDU2181
    F
    E
    Hash记录字符串
    无序map 记录一下
  • 原文地址:https://www.cnblogs.com/fortunely/p/13252711.html
Copyright © 2011-2022 走看看