水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
…
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
…
#include <stdio.h>
#include <math.h>
int main()
{
int i,n;
scanf("%d",&n);//输入n位,1位数都是自幂数
int n1=0;
int n2=0;
for(i=pow(10,n-1);i<pow(10,n);i++)//n=3时,100-999
{
int a=0;
int n2=0;
while(a<n)
{
n1 = i/pow(10,a);
n1 = n1%10;
n1 = pow(n1,n);
n2 = n2 + n1;
a++;
}
if(n2 == i)
{ printf("%d\n",i); }
}
return 0;
}