水仙花数是一个三位数,它的每一位的的立方和等于该数本身,如153=13+53+33。输入两个正整数m和n,写函数判断并输出它们之间的水仙花数以及水仙花数的个数,(包括m和n
时间: 2024-10-14 18:09:56 浏览: 25
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身
5星 · 资源好评率100%
这道题需要编写一个函数来判断一个数是否为水仙花数,然后在给定范围内遍历每个数并判断是否为水仙花数,最后输出符合条件的数和个数。具体实现可以参考以下步骤:
1. 编写一个函数来判断一个数是否为水仙花数,函数输入为一个整数,输出为布尔值。
2. 在主函数中输入两个正整数m和n,遍历m到n之间的每个数,判断是否为水仙花数,如果是则输出该数。
3. 统计符合条件的数的个数,并输出。
代码如下:
```
#include <stdio.h>
#include <math.h>
// 判断一个数是否为水仙花数
int isNarcissistic(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
int m, n;
int count = 0;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
printf("m和n之间的水仙花数有:\n");
for (int i = m; i <= n; i++) {
if (isNarcissistic(i)) {
printf("%d ", i);
count++;
}
}
printf("\n水仙花数的个数为:%d\n", count);
return 0;
}
```
阅读全文