此题的解决思路为:①首先确定输入的这个数是几位数
②拆下这个数的每一位进行水仙花的计算
③进行判断
具体代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 0;i<= 999; i++)
{
//确定i是几位数
int n = 1;
int sum = 0;
int tmp = i;
while (tmp / 10)
{
n++;
tmp = tmp / 10;
}
//拆下每一位求和
tmp = i;
while (tmp)
{
sum = sum + pow(tmp % 10, n);
tmp = tmp / 10;
}
//判断
if (sum==i)
printf("%d ", i);
}
getchar();
return 0;
}