2的N次方首位数

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)])]

把上面的思路写成代码就是:
C/C++ code
    
    
    
#include < stdio.h > #include < math.h > int main(){ double
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值