题目
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:在这里插入图片描述。本题要求编写程序,计算所有N位水仙花数。
输入格式及样例:
输入在一行中给出一个正整数N(3≤N≤7)。
3
输出格式及样例:
按递增顺序输出所有N位水仙花数,每个数字占一行。
153
370
371
407
参考代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main() {
int n;
scanf("%d", &n);
if (n < 3 || n>7) {
printf("输入不合法");
exit(0);
}
/*int* arr = (int*)malloc(sizeof(int));*/
int sum = 0;
for (int i = pow(10, n - 1); i <pow(10,n); i++) {
int tmp = i;
int m = n;//3
for (int j = 0; j < n; j++) {
int x = tmp % 10; //
sum = sum + pow(x, n);
tmp = tmp / 10; //12 1 0
m--;//2 1 0
}
if (sum == i)
printf("%d\n", sum);
/*else
printf("%d %d\n", i, sum);*/
sum = 0;
}
return 0;
}