#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
/*
打印水仙花数
打印0-100000之间的所有水仙花数
水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身
如:153 = 1^3 + 5^3 + 3^3
*/
int main()
{
int i = 0, j = 0;
for (i = 0; i <= 100000; i++)
{
int t = i, n = 1;
while (t / 10) //计算数字的位数
{
n++;
t = t / 10;
}
t = i;
int sum = 0;
for (j = 0; j < n; j++) //计算总和
{
int m = t % 10;
t = t / 10;
sum = sum + pow(m, n);
}
if (sum == i) //判断总和是否与该数相等
{
printf("%d ", i);
}
}
}
c语言-水仙花数
于 2022-07-27 21:11:09 首次发布