输出给定范围内的水仙花数。输入两个整数m和n(m、n是三位整数,且m<n),输出m到n之间的水仙花数,每个数后面有一空格。如果m到n之间没有水仙花数,则输出“no”。水仙花数是指一个n位数(n=3),它的每个位上的数字的n次幂之和等于它本身c语言
时间: 2024-03-09 11:45:24 浏览: 65
好的,我的回答如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n;
printf("请输入两个三位数m和n(m < n):");
scanf("%d %d", &m, &n);
int flag = 0; // 用于判断是否有水仙花数
for (int i = m; i <= n; i++) {
int sum = 0;
int temp = i;
while (temp) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == i) {
printf("%d ", i);
flag = 1;
}
}
if (!flag) {
printf("no");
}
printf("\n");
return 0;
}
```
解释一下代码:首先读入两个三位数m和n,然后遍历m到n之间的所有整数,对于每一个整数i,计算它每个位上数字的3次幂之和sum,如果sum等于i,则说明i是水仙花数,输出i,并设置flag为1。最后如果flag仍为0,则说明m到n之间没有水仙花数,输出"no"。
希望我的回答能够帮到你,有其他问题可以继续问我哦!
阅读全文