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

chen_zhe
Aya 敲可爱的~搬运于
2025-08-24 21:14:51,当前版本为作者最后更新于2025-03-09 13:14:47,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
欢迎报名洛谷网校,期待和大家一起进步!
本题考察枚举和进制转换。
本题要求将数字转化为 进制。我们先回忆一下如何进行进制转换。例如要将一个正整数 转换为 进制,我们要做的操作是:
- 求出 除以 的余数 ;
- 将 除以 ,得到的结果向下取整;
- 如果 ,则回到第一步;
- 将得到的余数倒序排列,所得的结果就是 转换成 进制的结果;
因此,一个正整数在 进制下的表示没有 ,可以理解成每次除以 得到的余数 从来不出现 。对于 进制的表示也是同理。
因此,我们可以编写一个函数
bool check(int x, int base),表示正整数 在 进制下的表示是否不含有 。返回值为true,则说明不含有;返回值为false,则说明含有。bool check(int x, int base) { while (x) { if (x % base == 0) return false; x /= base; } return true; }接着在主程序中,只用将枚举的 代入
check函数三次,即可得到答案:for (int i = a; i <= b; i++) { if (check(i, 5) && check(i, 7) && check(i, 9)) ans++; }
- 1
信息
- ID
- 8619
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者