N ** K的位数

时间:2010-04-15 12:52:21

标签: c++ math

对于给定的整数N和K(1 <= N,K <= 2000000000),你必须找到N ^ K的位数。

有没有公式或什么?因为我试图通过简单地驱动N ** K来解决它,但是它不适用于大值,并且程序因为计算而简单地冻结。我正在寻找一些快速的方式,也许像我之前说过的一些数学公式。

4 个答案:

答案 0 :(得分:15)

N的10个基本日志应该为您提供其中的位数。这必须足以作为提示: - )

答案 1 :(得分:3)

提示:对数。

答案 2 :(得分:2)

提示:记录(X ^ Y)= Y * Log(X)

以下数字有4位数字;十进制对数的整数部分是4 - 1 = 3。 记录1000 = 3,记录(9999)= 3,9999565683801924896154439559762

答案 3 :(得分:1)

尝试考虑一个数学运算,告诉你数字的位数。将其应用于N ** K,看看你是否不能简化公式。