#include <stdio.h>
int is(int number);
int pow3(int n);
int main()
{
int m, n, i, cnt = 0;
printf("input m and n :");
scanf("%d %d", &m, &n);
if (m >= 1 && n <= 1000)
{
for (i = m; i <= n; i++)
{
if (is(i) == 1)
{
cnt++;
printf("%6d", i);
if (cnt % 10 == 0)
printf("\n");
}
}
}
else
{
printf("invalid value\n");
}
return 0;
}
// 判断是否为水仙花数
int is(int number)
{
int item = 0, sum = 0, i, temp;
temp = number;
while (temp > 0)
{
item = temp % 10;
sum += pow3(item);
temp /= 10;
}
if (sum == number) //各位数字的三次幂等于原数,即为水仙花数
return 1;
else
return 0;
}
// 避免使用math.h,自己写函数pow3计算n的三次幂
int pow3(int n)
{
return n * n * n;
}
C语言程序设计(第4版)何颜钦 课后习题随笔P121练习题L5