第一问:提取 nmn^mnm 的前 5 位。
1≤n≤231,1≤m≤1e71\le n\le 2^{31},1\le m \le 1e71≤n≤231,1≤m≤1e7。
有一种比较神秘的第一问做法。
考虑到和位数有关,根据前几天某题的经验,可以取以十为底的对数。
这玩意可以直接用 c++ 函数 log10() 算出来。
c++
log10()
注意到 tmp 可以拆成整数部分 z 和小数部分 f
tmp
z
f
发现 10z10^z10z 和值没有关系。
而 10f10^f10f 的最高几位就是 nmn^mnm 的最高几位。
注册一个 SDSY 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 SDSY 通用账户