1 条题解
-
0
自动搬运
来自洛谷,原作者为

chen_zhe
Aya 敲可爱的~搬运于
2025-08-24 21:16:50,当前版本为作者最后更新于2024-12-14 13:20:23,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
欢迎报名洛谷网校,期待和大家一起进步!
本题考查循环结构、循环嵌套以及常见的数学函数的使用。
本题需要读入 个正整数,因此使用循环结构进行读入每一个 。接下来问题在于如何找到正整数 了。这里介绍两种做法:
做法 1:枚举法。要问是否存在 ,可以让 从 一直循环下去,直到发现了 或者发现不存在这个情况为止。什么情况下会不存在这个情况呢?随着 的增大, 不断增大,因此当 的时候,若还没有发现 的情况,就可以认为不存在 了。
在编写代码中,可以使用
pow(b, 4)表示 ,也可以简单地使用b * b * b * b编写。参考代码(部分):
for (int b = 1; pow(b, 4) <= a; b++) { if (pow(b, 4) == a) { cout << b << endl; flag = true; //记录得到了一组解 } } //若无解需要输出 -1做法 2:开根法。如果 是一个整数,那么 也是一个整数, 也是一个整数。因此 , 均为整数。
从而想到:可以直接对 开四次根号,将得到的结果保留整数部分记作 。如果计算发现 ,那么说明存在 ,否则不存在。计算 的四次根号,可以使用
sqrt(sqrt(a)),也可以使用pow(a, 1.0 / 4)。参考代码(部分):
int b = sqrt(sqrt(a)); if (pow(b, 4) == a) cout << b << endl; else cout << -1 << endl;
- 1
信息
- ID
- 11087
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者