水仙花数N属于[3,6]
#include <stdio.h>
#include <math.h>
int main(void) {
int n;
int i,j,num;
double sum; //用来保存没一位数的值
//int sum; //若sum定义为int类型,则会因为pow的取值范围导致结果错误
scanf("%d",&n); //输入N
for (i = pow(10,n-1); i < pow(10,n); i++) {
num = i;
for (j = 0,sum = 0; j < n; j++) {
sum += pow(num%10,n);
num /= 10;
}
if (sum == i) {
printf("%.0lf\n",sum);
}
}
在命令指示符中的输出结果----------------
---------使用double类型的sum---------
3
153
370
371
407
---------使用int类型的sum------------
3
370
371
407