(算法题)5的987次方有多少位
有同事贴出一个入群被拒绝理由如下,(蛮搞笑的)
本着一个玩一玩的心态,本试着看看能不能解出来,过程如下:
第一次试着手段算5的n次方,希望能够从结果发现某些规律,结果算到5^10,也没有发现任何规律。
喝杯茶,再仔细看看题目,发现这里只是求位数,而且底数是5,再想一想,5可以转化为10/2 ,看到这两个数据,就亲切了。于是:
5^987 = (10/2)^987 = (10^987)/(2^987) = A/B
所以:10^987次方即为 1000.....0(987)个0,即10^987有987位
于是上面题目转化为求2^987次方有多少位的问题,
2^n =10^(log(2^n)) = 10^(n*log2)
log2 约= 0.30103
2的n次方有0.30103 * n (取不小于这个值的最小正整数) 位
所以2的987次方有 297位
所以5的987次方有 690位
上面用到公式:
a的N次幂公式=a^N=10^(Nlga)
如果上面题目直接用公式:
那么5^987 = 10^(987*log5) ~= 10^(987*0.69897) =10^689.88339 ~= 10^690
所以:算法才是王道!
- 4楼zp3141592910小时前
- x^y果断:n(int)(log(X) * y + 1)
- 3楼masikkk昨天 20:08
- 有点意思
- 2楼TJ475080336昨天 16:41
- 高中的数学题呗,其实一句话代码就实现了:npython print len(str(5**987))n输出690
- 1楼faintzw昨天 14:56
- 我是那群的管理员和这题的出题人。我真的只是想看加群的人知不知道python可以处理任意高精度的整数。所以1楼的就是我想要的答案。2楼的也是在考虑范围内的。n其实5和987这数我都是随手写的,就是怕有人能在网上找到答案。没想到还是有人发出来了。接下来又要换题了