刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

奇妙数

提示信息:

如果一个整数能够被它的各位上的非零数字整除,则称该数为奇妙数。

例如:

整数102,它的各位上的非零数字为1 和2,102 既能被1 整除,也能被2 整除,

所以102 是奇妙数;

整数456,它的各位上的非零数字为4、5 和6,456 能被4 和6 整除,但不能被5整除,所以456 不是奇妙数。

题目描述:

给定两个整数n 和m,请输出n 到m 之间(包含n 和m)所有的奇妙数;若不存在奇妙数,则输出-1。

输入描述:

一行输入两个整数n 和m(1≤n≤m≤100000),整数之间以一个空格隔开

输出描述:

按照从小到大的顺序输出n 到m 之间(包含n 和m)所有的奇妙数,整数之间以一个空格隔开;若不存在奇妙数,则输出-1


样例输入:

10 20

样例输出:

10 11 12 15 20

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```#include #include using namespace std;bool isWonderful(int num) int temp = num;while (temp > 0) {int digit = temp % 10;if (digit != 0 && num % digit != 0) {return false;}temp /= 10;}return true;int main() int n, m;cin >> n >> m;vector wonderfulNums;for (int i = n; i <= m; i++) {if (isWonderful(i)) {wonderfulNums.push_back(i);}}if (wonderfulNums.empty()) {cout << "-1" << endl;} else {for (int i = 0; i < wonderfulNums.size(); i++) {cout << wonderfulNums[i];if (i != wonderfulNums.size() - 1) {cout << " ";}}cout << endl;}return 0;```

解析:

【喵呜刷题小喵解析】:

首先,我们需要编写一个函数`isWonderful`来判断一个数是否为奇妙数。函数接受一个整数`num`作为参数,然后将其各个位上的非零数字提取出来,并检查`num`是否能被这些数字整除。如果`num`不能被任何一个非零数字整除,那么返回`false`,否则返回`true`。

在主函数中,我们首先读入两个整数`n`和`m`。然后,我们使用一个循环遍历从`n`到`m`的所有整数,对于每个整数,调用`isWonderful`函数来判断它是否为奇妙数。如果是奇妙数,就将其加入到一个`vector`中。

最后,我们检查`vector`是否为空。如果为空,说明不存在奇妙数,输出`-1`。否则,按照从小到大的顺序输出所有的奇妙数。
创作类型:
原创

本文链接:奇妙数 提示信息: 如果一个整数能够被它的各位上的非零数字整除,则称该数为奇妙数。 例如: 整数10

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share