//水仙花数
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int first=1;
int i=1;
while(i<n)//求n位数的第一个数
{
first*=10;
i++;
}
i=first;
//遍历所有n位数
while(i<first*10){
int t=i;
int sum=0;
do{
int d=t%10;
t/=10;//分解n位数
int p=d;
int j=1;
while(j<n){
p*=d;
j++;//求每位的n次方
}
sum+=p;
}while(t>0);
if(sum==i){
printf("%d\n",i);
}
i++;
}
return 0;
}
水仙花数(练习)
最新推荐文章于 2022-07-22 21:56:16 发布