![]() |
#2
by678952021-12-22 06:44
|
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,max,ws,gw,k,sum=0;
printf("请输入一个位数m(1<=m<=8),求出1位至m位的所有水仙花数如下:\n");
max=pow((int)10,(int)m)-1;
for(n=1;n<=max;n++)
{
//求出n的位数
k=n;
ws=0;
while(k!=0)
{
k=k/10;
ws++;
}
//求出n的各位gw及对应的和gw的ws次方
sum+=pow((int)gw,(int)ws);
//判断是否为水仙花数,是则输出
if(sum==n)
printf("%d\n",n);
}
}