水仙花数定义
水仙花数是指一个 n 位数,它的每个位上的数字的 n次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
头文件
#include<stdio.h>
#include<pow>
代码
#include<stdio.h>
#include<math.h>
int main() {
int n;
scanf("%d", &n);
double b = pow(10, n-1);
for (double i = b; i < b * 10; i++) {
double a[10], sum = 0;
for (int k = n - 1; k >= 0; k--) {
int c = (int)pow(10, k);
a[k] = ((int)i)/c % 10;\\求一个数各个位上的数字
sum += pow(a[k], n);\\计算各个位上数字的n次方
}
if (sum == i)printf("%.0llf\n", i);\\注意去除小数部分
}
}