int is_number(int i)
{
//1.计算i的位数
int n = 1;//一个数至少是1位
int tmp = i;//在for循环中不可以在体内修改循环变量
int sum = 0;
//判断i是几位数
while (tmp / 10)
{
n++;
tmp /= 10;
}
//2.得到i的位数,求出n次方之和
tmp = i;
while (tmp)
{
sum += pow(tmp % 10, n);
tmp /= 10;
}
if (sum == i)
return 1;
else
return 0;
}
int main()
{
int i = 0;
for (i = 0; i < 100000; i++)
{
if (is_number(i))
{
printf("%d ", i);
}
}
return 0;
}
0-10000之间的水仙花数
最新推荐文章于 2024-07-22 14:15:06 发布