log(2^n) = n*log2
【思路】
假如知道2^n有多少位
比如说是x位
然后求[(2^n)/(10^(x-1))] ①
得到的结果就是第一个数了(“[]”表示取整)
例如:
2^5=32
n=5
x=2
[(2^n)/(10^(x-1))]=[32/10]=[3.2]=3
求位数可以用log10来计算
[log10(x)]+1可以计算出x的位数有多少 ③
这里x=2^n
log10(2^n)=n*log10(2)=a
也就是说如果对上面的a取整就是2^n的位数的值
同时又有10^a=2^n ②
把②、③式代入①式得:
第一位数字
=[(10^(n*log10(2)))/(10^([n*log10(2)]+1-1))]
=[10^(n*log10(2)-[n*log10(2)])]
把上面的思路写成代码就是:
假如知道2^n有多少位
比如说是x位
然后求[(2^n)/(10^(x-1))] ①
得到的结果就是第一个数了(“[]”表示取整)
例如:
2^5=32
n=5
x=2
[(2^n)/(10^(x-1))]=[32/10]=[3.2]=3
求位数可以用log10来计算
[log10(x)]+1可以计算出x的位数有多少 ③
这里x=2^n
log10(2^n)=n*log10(2)=a
也就是说如果对上面的a取整就是2^n的位数的值
同时又有10^a=2^n ②
把②、③式代入①式得:
第一位数字
=[(10^(n*log10(2)))/(10^([n*log10(2)]+1-1))]
=[10^(n*log10(2)-[n*log10(2)])]
把上面的思路写成代码就是:
-
C/C++ code
-
#include < stdio.h > #include < math.h > int main(){ double