c语言输入两个整数m和n,输出必须大于等于m,并且小于等于n的水仙花数,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开,如果给定的范围内不存在水仙花数,则输出no。
时间: 2024-05-24 17:12:12 浏览: 111
c语言:水仙花数
5星 · 资源好评率100%
#include <stdio.h>
#include <math.h>
int isNarcissistic(int num);
int main()
{
int m, n, i, count = 0;
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++) {
if (isNarcissistic(i)) {
if (count == 0) {
printf("%d", i);
} else {
printf(" %d", i);
}
count++;
}
}
if (count == 0) {
printf("no");
}
return 0;
}
int isNarcissistic(int num)
{
int sum = 0, temp = num, digit = 0;
while (temp) {
digit++;
temp /= 10;
}
temp = num;
while (temp) {
sum += pow(temp % 10, digit);
temp /= 10;
}
return sum == num;
}
阅读全文