水仙花数:n位数字的每位的n次方和等于这个数字本身,则称这个数字为水仙花数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int i = 0;
for (i = 1; i <= 10000; i++)
{
int count = 1;
int sum = 0; //sum和count变量必须放在for循环内,每循环一次都要归零,不然在外面,他会累加
int temp = i; //创建临时变量,每次循环i的值不可以发生变化
while (temp / 10)
{
count++; //count用来计算这个数是几位数
temp = temp / 10;
}
temp = i; //保证下次循环i的值没有发生改变,用临时变量
while (temp)
{
sum = sum + (int)pow(temp % 10, count); //
temp = temp / 10; // %10 和 /10 可以确定每位数字
}
if (sum == i)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}