HDU 1060 数论

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1060
开始还以为是一个找规律的题目。后来试了下错了。那肯定是公式了。总不可能真去算。
下面我们假设pow(n,n) = sum。
我们将 sum 记作 a*10^n (1<=a < 10)
两边log10(没为啥。你说现在除了log10还能干吗)
log10(sum) = log10(a) + n;
就成了这样。
因为a的范围,所以 0<=log10(a)<1。
我们将log10(sum) 记为x
那么 x = log10(a)+n;
其中log10(a)对应小数部分。n对应整数部分了。
a = 10^(x-n)。 按照最开始的记为的意思。a就是开头的系数了。
所以我们要求的为pow(10,a)。因为那个x是log10(sum)。
然后前面说了n是x的整数部分。所以
a = 10^(x-int(x));
因为x = log10(n^n) = n*log10(n*1.0); 这个1.0别忘记。
然后这题就做完了。代码不贴了- -这种题目代码都是假的。推导步骤才重要。

猜你喜欢

转载自blog.csdn.net/qq_38987374/article/details/79605030