#include<stdio.h>
#include<math.h>
int main (){
int n,num = 0;
printf("求N位数的水仙花数 请输入N\n");
scanf("%d",&n);
for(int i = pow(10,n-1);i<pow(10,n);i++ ){ //遍历n位数所有数 i
num = 0; //num保存幂求和初始化为0
for(int k = 1; k<= n ; k++){ //遍历i的每一位
num = num +pow((int)(i/pow(10,k-1))%10,n); //求和
}
if(num == i)
printf("%d\n",num); //判断是否是水仙花数 是则打印
}
return 0;
}
求任意n位数的水仙花数
如果再套一个循环还可以变成1~n位数的水仙花数 |